2011-07-19 96 views
-1

我想通過形式分配Smarty的變量$error顯示錯誤消息無法訪問附加變量:PHP&SMARTY =>在.tpl文件

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())它的工作

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

編輯忘了包括合併參數。

+0

那代碼是與上述問題 – Londeren

+0

是的代碼是相同的,感謝您的幫助: ) – Wex

0

讀智者manual,關聯數組正確的語法是:

{$error.title} 
+0

我認爲它們是等價的,但是謝謝你指出。 – Wex

+0

不僅。他的代碼風格也是可以接受的。 – Londeren

+0

不確定它們是否相同,但我現在無法檢查。順便說一句,你有沒有嘗試過[聰明的調試控制檯](http://www.smarty.net/docs/en/chapter.debugging.console.tpl),你看到$ error數組嗎? – Zyava