2012-08-22 33 views
0

我已經爲實體編輯表單。有元素ZF Datagrid編輯表單驗證失敗原因忽略元素

  $feedback = new FeedbackViewer('Feedback'); 
    $feedback->setLabel('Feedback')->setRequired(false); 
    $feedback->setPostId($this->testimonialId); 
    $feedback->setAppId($this->config->testimonials->appId); 
    $feedback->setIgnore(true); 
    $this->addElement($feedback); 

此反饋查看器加載iframe與另一個zf datagrid顯示窗體內的反饋。 我用這種形式在數據網格ZF

但ZF的DataGrid節省活動觸發錯誤後驗證失敗。刪除反饋元素可以正確保存。 有什麼建議嗎?

回答

0
$grid->setForm($form); 
       if($action != 'show') { 
       $form->getForm()->getElement('form_reset')->setLabel(null); 
       $form->getForm()->getElement('form_submit')->setLabel(null); 

       $gridParam = $this->getRequest()->getParam('grid'); 
       $startParam = $this->getRequest()->getParam('start'); 


       if ($gridParam) { 
         if ($gridParam == 'all') { 
           $gridParam = 'index'; 
         } 

         // Attach to event listener custom redirect action 
         $grid->listenEvent('crud.after_update', array($this, 'setGridRedirectCallback'), array('action' => $gridParam, 'page' => $startParam)); 
         $grid->listenEvent('crud.after_delete', array($this, 'setGridRedirectCallback'), array('action' => $gridParam)); 
         $form->getForm()->getElement('form_reset')->setAttribs(array('onclick' => 'window.location.href = "/admin/' . $gridParam . (($startParam) ? '/start/' . $startParam : '') . '";')); 
       } 

我解決了這個問題,把它放在If標籤中,找不到更好的解決方案。