'm試圖在表單中使用setBelongsTo,但Zend不驗證這些值,也沒有驗證該字段的setDefaults。已經搜索谷歌,什麼都沒找到。任何想法?Zend:setBelongsTo no working right
表:
$this->setName('form_tecnicos')
->setAttrib('onSubmit',"return validarForm()");
$elementos['nome'] = new Zend_Form_Element_Text('nome');
$elementos['nome']->setLabel('Nome')
->setRequired(true)
->setAttrib('maxlength','150');
$elementos['telefone0'] = new Zend_Form_Element_Text('0');
$elementos['telefone0']->setLabel('Telefones')
->setRequired(true)
->setAttribs(array('mascara'=>'tel','maxlength'=>14))
->setBelongsTo('telefones');
$elementos['telefone1'] = new Zend_Form_Element_Text('1');
$elementos['telefone1']->setLabel('Telefones')
->setRequired(true)
->setAttribs(array('mascara'=>'tel','maxlength'=>14))
->setBelongsTo('telefones');
$elementos['submit'] = new Zend_Form_Element_Submit('Entrar');
$elementos['submit']->setLabel('Entrar');
$this->addElements($elementos);
$filters = array('StringTrim');
$this->setElementFilters($filters);
$this->setElementDecorators(array(
'viewHelper',
'Errors',
array(array('data'=>'HtmlTag'), array('tag' => 'dd')),
array('Label',array('tag'=>'dt')),
array(array('row'=>'HtmlTag'),array('tag'=>'div','class'=>'grid_2'))
));
$remover_label = array('submit');
foreach($remover_label as $elementos)
$this->$elementos->removeDecorator('label');
控制器
$form = new Application_Form_Tecnicos();
$this->view->form = $form;
if($this->getRequest()->isPost()):
$dados = $this->getRequest()->getPost();
if($form->isValid($dados)):
//
else:
$form->setDefaults($dados);
endif;
endif;
的print_r($ dados)
Array ([nome] => [telefones] => Array ([0] => (11) 1111-111) [Entrar] => Entrar)
我被困在它上面
我在Zend Framework 1中對錶單的體驗使我相信它們從根本上被打破了,特別是在處理子表單時。 – GordonM
中斷或可能更好措辭:有限。第一個逆向工程師,然後使用我可以建議。 – hakre
我想我是唯一喜歡ZF1表格的人。他們有他們的怪癖,但他們是強大的,並使它很容易創建一致的形式,而不必重複加載標記。雖然我同意子表單存在一些問題,但我知道使用setBelongsTo的唯一理由是如果您需要從舊應用程序維護標記。 –