将变量传递给viewScript Decorator

时间:2012-07-16 08:50:52

标签: zend-framework arguments zend-form partial zend-decorators

我尝试使用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的错误。

我感觉我错过了一些东西,但我不确定它是什么。任何建议或解决方案将不胜感激! :)

1 个答案:

答案 0 :(得分:1)

问题在于这一行:

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

因为您将变量放在引号内,所以它会被强制转换为字符串。在PHP中,当您将数组转换为字符串时,结果始终是单词Array

只需更改为:

'List'=> $categories,

它应该按预期工作。