我的Zend_Form工作发现,直到我添加一个ViewScript装饰器。一旦我添加了一个ViewScript,表单就会无声地失败。我很确定这是Zend黑屏问题(这不是一个真正的大问题)和我的viewscript调用的一些问题的组合。
我的项目设置如下:
/application
/modules
/default
/ .. other modules ..
/register
/controllers
/forms
/Options.php
/_option.phtml
/models
/views
/scripts
我的形式:
class Register_Form_Options extends Zend_Form
{
init()
{
$field = new Zend_Form_Element_Select('Options');
$field
->setLabel($row->Name)
->addValidator('int');
$list= array( /* select options here*/ );
$field->addMultiOptions($list);
$field->setDecorators(array(array('ViewScript',array('viewModule'=>'register','viewScript'=>'forms/_option.phtml'))));
$this->addElement($field);
}
}
文件_option.phtml
目前只包含文本。
当我注释掉ViewScript行时,表单在我的视图内呈现。当我保留它时,表单根本不呈现,但显示视图的其余部分。
任何见解将不胜感激!
当您使用viewModule
选项指定驻留在另一个模块中的视图脚本时,我可以想象框架期望找到它相对于该模块的view/scripts文件夹。
所以,我会尝试移动_option.phtml
视图脚本:
modules/register/forms/_option.phtml
modules/register/views/scripts/forms/_option.phtml
并在setDecorators()
中保持对它的引用不变。