2012-07-16 159 views
0

我已經嘗試使用Zend窗體的viewScript裝飾器添加局部到我的窗體,但是我似乎無法將變量傳遞給局部。這裏是我的代碼:將變量傳遞給viewScript裝飾器

在控制器中我添加的形式:

$form = new Content_Form_ContentForm(array("categories" => $sortedCategories)); 
$form->submit_button->setLabel("Add content"); 
$this->view->form = $form; 

然後表單內我加入viewscript:

public function setCategories($categories) { 
    $this->setDecorators(array(array('ViewScript', array(
      'viewScript' => 'partials/dtreePartial.phtml', 
      'List'=>"{$categories}", 
    )))); 
} 

我曾嘗試通過打印的視圖腳本選項使用print_r($this->getDecorator('ViewScript')->getOptions());這樣的結果在Array ([viewScript] => partials/dtreePartial.phtml [List] => Array) 但是,當我運行它的所有,腳本返回一個關於列表不存在的錯誤。

我有這種感覺我錯過了一些東西,但我不確定它是什麼。任何意見或解決方案將不勝感激! :)

回答

1

問題是這一行:

'List'=>"{$categories}", 

因爲你把引號內的變量,它被轉換爲字符串。在PHP中,當您將一個數組轉換爲一個字符串時,結果始終爲單詞Array

簡單地更改爲:

'List'=> $categories, 

和你希望它應該工作。

+0

我想我需要買眼鏡:)感謝您的協助 – 2012-07-17 12:06:22