【问题标题】:Passing variables to a viewScript Decorator将变量传递给 viewScript 装饰器
【发布时间】:2012-07-16 08:50:51
【问题描述】:

我尝试使用 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()); 打印视图脚本的选项,结果为Array ( [viewScript] => partials/dtreePartial.phtml [List] => Array ) 但是,当我全部运行时,脚本会返回有关列表不存在的错误。

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

【问题讨论】:

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


    【解决方案1】:

    问题出在这一行:

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

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

    只需更改为:

    'List'=> $categories,
    

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

    【讨论】:

    • 我想我需要买眼镜 :) 谢谢你的帮助
    猜你喜欢
    • 1970-01-01
    • 2021-08-20
    • 2012-12-13
    • 2020-07-26
    • 2016-02-03
    • 2021-08-22
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多