0

我尝试使用 Zend Form 的 viewScript 装饰器向我的表单添加一个部分,但是我似乎无法将变量传递给部分。这是我的代码:

在控制器中,我添加了表单:

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

然后在表单中添加视图脚本:

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

我尝试使用print_r($this->getDecorator('ViewScript')->getOptions());wich 结果打印视图脚本的选项Array ( [viewScript] => partials/dtreePartial.phtml [List] => Array ) 但是当我全部运行时,脚本返回有关列表不存在的错误。

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

4

1 回答 1

1

问题在于这一行:

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

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

只需更改为:

'List'=> $categories,

它应该可以按您的预期工作。

于 2012-07-16T18:12:44.920 回答