ViewScript装饰器无法找到phtml脚本

时间:2014-08-22 21:57:08

标签: php zend-framework zend-form

我的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行时,表单会在我的视图中呈现。当我将其保留时,表单根本不会呈现,但视图的其余部分会显示。

任何见解都将受到赞赏!

1 个答案:

答案 0 :(得分:0)

当您使用viewModule选项指定驻留在另一个模块中的视图脚本时,我认为框架希望相对于 view / scripts 文件夹找到它模块。

所以,我会尝试移动_option.phtml视图脚本:

modules/register/forms/_option.phtml

modules/register/views/scripts/forms/_option.phtml

并在setDecorators()未更改的情况下将您的引用留在其中。