2012-12-11 73 views
1

對於我的聯繫表單,不會顯示任何表單錯誤。表單不會在模板中顯示錶單錯誤

$contact = new Contact(); 

    $form = $this->createForm(new ContactFormType(), $contact); 

    /* handle contact form submission */ 
    if ('POST' == $request->getMethod()) { 
     $form->bindRequest($request); 

     if ($form->isValid()) { 
      //Do something 
     } 
    } 

    return $this->render('MainBundle:Default:contact.html.twig', array(
       'form' => $form->createView() 
    )); 

我的驗證

Fc\MainBundle\Entity\Contact: 
    properties: 
     firstName: 
      - NotBlank: ~ 

     lastName: 
      - NotBlank: ~ 

     email: 
      - NotBlank: ~ 
      - Email: 
       checkMX: true 
     title: 
      - NotBlank: ~ 
     message: 
      - NotBlank: ~ 

我添加了一個novalidate屬性到我的表單標籤,檢查我的驗證工作。現在,當我用空數據提交表單時,沒有任何事情發生(正確的數據一切正常),控制器將表單識別爲無效並停止進一步的處理。

在模板我叫

{{ form_errors(form) }} 

但不顯示任何內容。任何想法爲什麼?我用的symfony的2.1.x

回答

4

你能否證實確認正在與此:

if ($form->isValid()) { 
//Do something 
} 
else 
{ die('not valid') } 

的形式以及貼?

HTML中是否有任何內容顯示您調用{{form_errors(form)}}的位置? - 這將是一個CSS或JS的問題,如果是這樣的話......

你有沒有試圖通過展示領域的錯誤(沒有在您的驗證沒有全球性的錯誤顯然):

{{ form_errors(form.firstName) }} 
etc. 

備註: form.firstName works,而不是form.first_name。您必須遵循Doctrine2/Symfony2的慣例。

+1

+1你最後一點......它顯示firstName字段或任何單個字段的錯誤消息。但form_errors(表單)不起作用。我需要form_errors(表單)來工作 –

+0

不記得語法,但基本上,你只需要循環所有的表單錯誤...看看API。可能類似於$ errors = $ form-> getErrors()並在模板中使用它(對於錯誤中的錯誤... error.message) –

+0

$ form-> getErrors()返回空數組 –