tim*_*one 5 php zend-framework zend-form zend-view
我有一个从Zend_Form扩展的表单.我将表单放入这样的ViewScript装饰器中:
$this->setDecorators(array(array('ViewScript', array('viewScript' => 'game/forms/game-management.phtml'))));
Run Code Online (Sandbox Code Playgroud)
我想将一个变量传递给这个ViewScript,但我不确定如何做到这一点.
由于部分渲染为Zend_View(允许$ this-> app_store_icon进行渲染),似乎应该有一种方法来传递要渲染的变量.我尝试了以下但无济于事.
$this->setDecorators(array(array('ViewScript', array('viewScript' => 'game/forms/game-management.phtml'),array('app_store_picon'=>$current_app_store_picon))));
Run Code Online (Sandbox Code Playgroud)
任何有关如何完成此任务的帮助将不胜感激.
谢谢
小智 10
这个有点棘手,花了我一个半小时来搞清楚,但是可以做到:)
关键是,您将选项传递给ViewScript装饰器而不是元素.添加选项:
$this->setDecorators(array(array('ViewScript', array(
'viewScript' => 'test.phtml',
'foo'=>'baz',
))));
Run Code Online (Sandbox Code Playgroud)
或一系列选项:
$this->setDecorators(array(array('ViewScript', array(
'viewScript' => 'test.phtml',
array(
'foo'=>'baz',
'spam'=>'ham',
),
))));
Run Code Online (Sandbox Code Playgroud)
在部分中得出结论test.phtml:
$option = $this->element->getDecorator('ViewScript')->getOptions();
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,有一个选项通过它将是,$option['foo']而在第二种情况下它将是$option[0]['foo']
HTH :)
| 归档时间: |
|
| 查看次数: |
4755 次 |
| 最近记录: |