【发布时间】:2010-05-19 21:07:33
【问题描述】:
我有一个关于将 Zend_Dojo_Form 添加到 Zend_layouts 的快速问题。
我有一个 Zend_Dojo_Form,我想在用于特定控制器的布局中显示它。我可以毫无问题地将表单添加到布局中,但是 dojo 元素无法呈现,就像我将表单添加到标准视图中一样。
有什么理由会出现这种情况吗?我是否需要对布局做一些事情,以便在布局中启用此嵌入表单的组件。使用此布局添加到视图中的任何其他启用了 dojo 的表单都可以正常工作。
我的表单以通常的方式创建:
class QuickAddJobForm extends Zend_Dojo_Form{
public function init(){
$this->setName('quickaddjobfrm')
->setMethod('post')
->setAction('/addjob/start/);
/*We now create the elements*/
$jobTitle = new Zend_Dojo_Form_Element_TextBox('jobtitle',
array(
'trim' => true
)
);
$jobTitle->setAttrib('style', 'width:200px;')
->addFilter('StripTags')
->removeDecorator('DtDdWrapper')
->removeDecorator('HtmlTag')
->removeDecorator('Label');
....
$this->addElements(array($jobTitle, ....));
在控制器中,我在 init 函数中声明布局和表单:
public function init(){
$this->_helper->layout->setLayout('add-layout');
$form = new QuickAddJobForm();
$form->setDecorators(array(array('ViewScript', array('viewScript' => 'quickAddJobFormDecorator.phtml'))));
$this->_helper->layout()->quickaddjob = $form;
在我的布局中,我想要我拥有的表单:
echo $this->layout()->quickaddjob;
为什么在布局中添加此表单无法渲染/添加 Dojo 元素?当前显示的只是文本框,而不是其他一些组件,例如 ComboBoxes/FilteringSelects 等...
提前致谢。
【问题讨论】:
标签: zend-framework dojo zend-form