我尝试使用Zend Form的viewScript装饰器向我的表单添加部分,但是我似乎无法将变量传递给partial。这是我的代码:
在控制器中添加表格:
$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 )
打印视图脚本的选项
但是,当我全部运行时,脚本会返回有关List not exists的错误。
我感觉我错过了一些东西,但我不确定它是什么。任何建议或解决方案将不胜感激! :)
答案 0 :(得分:1)
问题在于这一行:
'List'=>"{$categories}",
因为您将变量放在引号内,所以它会被强制转换为字符串。在PHP中,当您将数组转换为字符串时,结果始终是单词Array
。
只需更改为:
'List'=> $categories,
它应该按预期工作。