2011-07-19 9 views
-1

私はの形でSmartyの変数$errorを割り当てることにより、エラーメッセージを表示しようとしていますの.tplファイルに付加さの変数にアクセスすることはできません:PHP&SMARTY =>

function validate1() { 
    $error['title'] = "Title contains illegal characters..."; 
    $this->smarty->append('error', $error); 
} 
function validate2() { 
    $error['time'] = "Please enter a time in 12 hour clock (12:30 PM) format."; 
    $this->smarty->append('error', $error); 
} 

私のHTMLのように見えます

<p class="message-error">{$error['title']}</p> 
<p class="message-error">{$error['time']}</p> 

私は最近、以下のコードを使用していました。次のコードと同じように動作するように、最初のブロックを変更する方法はありますか?

$error['title'] = "Title contains illegal characters..."; 
$error['time'] = "Please enter a time in 12 hour clock (12:30 PM) format."; 
$this->smarty->assign("error", $error); 
+0

わからないが、それは 'append' – Londeren

答えて

1

あなたは配列をこのように定義し、(append()に第三のparam)マージオプションを含める場合、それは動作します

function validate1() { 
    $error = array('title' => "Title contains illegal characters..."); 
    $this->smarty->append('error', $error, TRUE); 
    // -------------------------------------^^^^ 
} 

EDITはmergeパラメータを含めるのを忘れていました。

+0

ザッツコードを使用しては不可能なのは、問題の上記のコードと同じである – Londeren

+0

うん、あなたの助けに感謝します: ) – Wex

0

読むのSmartyのmanual、連想配列の正しい構文は次のとおりです。

{$error.title} 
+0

私は彼らが同等だと思うが、それを指摘してくれてありがとう。 – Wex

+0

だけでなく。彼のコードスタイルも容認できるものです。 – Londeren

+0

これは同等かどうかはわかりませんが、今すぐ確認することはできません。 Btw、[スマートなデバッグコンソール](http://www.smarty.net/docs/en/chapter.debugging.console.tpl)を見てみましたか?そこに$ error配列がありますか? – Zyava