2012-07-16 100 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