ViewScript装饰器找不到php脚本


ViewScript decorator fails to find phtml script

我的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()中保持对它的引用不变。