2013-04-10 21 views
0

我是symfony的新手。我寫了一個表單提交的代碼。如何通過symfony 1.4獲得無效表單的原因?

public function executeEdit(sfWebRequest $request) 
    { 
     $userId = $request->getParameter('id'); 
     $this->user = sfGuardUserTable::getUserById($userId); 
     $this->form = new editOwnerForm($this->user); 
     $this->paymentForm = new profilePaymentInfoForm($this->user->getPaymentInformation()); 

     if ($request->getMethod() == sfWebRequest::POST) { 
      $this->form->bind($request->getParameter($this->form->getName())); 
      if ($this->form->isValid()) { 
       $this->form->save(); 
       $this->message = 'Successfully updated owner details';        
      } else { 
       var_dump($this->form->renderGlobalErrors()); die; 
      } 
     } 
    } 

總是我的表單無效。 (總是運行其他部分有效的形式)但我找不到原因。 var_dump($this->form->renderGlobalErrors());不要給任何消息。我該如何解決它。?

+0

您是否打開了* _dev.php並檢查開發者工具欄中是否存在錯誤? – 2013-04-10 11:10:54

+0

我已經使用dev.php。它不會給出任何錯誤或原因。我也檢查日誌文件。它也不顯示這個問題的原因。 – 2013-04-10 11:23:52

+0

禁用csfr令牌進行測試 – 2013-04-10 11:25:22

回答

5

您需要從表單提交發現錯誤...

調試欄的視圖部分應以橙色顯示,並突出顯示形式的任何錯誤 - 只需點擊「查看」,然後突出顯示的表單字段。

如果沒有,你可以嘗試改變你的catch塊像這樣進行調試:

foreach ($this->form as $key => $field) { 
    $message = $field->renderError(); 
    if ($message) echo 'Error with field ', $key, ':', $message; 
} 

不包括CSRF字段是一個常見的問題 - 有你要包括$形式 - > renderHiddenFields(通話)在你的形式部分?

+0

這可行,但你在「回聲」行中有錯誤。它應該是「。」而不是「,」。 – brpaz 2013-05-22 15:39:51

+1

不,它應該是「,」:)在使用echo直接輸出事件時,使用逗號比句點更有效。 – caponica 2013-06-12 12:47:34

+0

我不知道你可以做到這一點。謝謝。 – brpaz 2013-06-13 08:24:34

相關問題