嘿,所以我在修饰器方面遇到了麻烦,最后找到了ViewScript装饰器,这似乎是我正在寻找的东西。我无法想象如何让所有文件指向彼此,并希望你们可以提供帮助。
在我的表单中,在底部,我为所有元素分配了viewScript装饰器:
Bottom of the form.php:
$this->setElementDecorators(array(array('ViewScript'), array('viewScript' => 'ViewScript.phtml')));
我认为这会占用我的表单元素,并将它们放入ViewScript.phtml中,该文件与我的form.php位于同一文件夹中。
但是,我收到此错误消息:
Warning: Exception caught by form: Plugin by name '/ViewScript.phtml' was not found in the registry; used paths: Zend_Form_Decorator_: Zend/Form/Decorator/;Zend/Form/Decorator/ (..BLAHBLAH)
为什么表单找不到ViewScript.phtml,我怎么能指向它呢?
答案 0 :(得分:4)
您正在设置两个装饰器,一个称为“ViewScript”,另一个称为“ViewScript.phtml”,而不是您想要做的:
$this->setElementDecorators(array(
array('ViewScript', array(
'viewScript'=>'ViewScript.phtml'
),
);
请记住,您正在设置装饰器 - 因此每个装饰器只接受传递给函数调用的数组中的一个元素。