2012-10-30 33 views
1

我修改我的代碼以遵循@Stony的建議。無法在Sf2上的電子郵件字段上自定義錯誤消息

我想自定義我的電子郵件輸入錯誤。我試圖按照symfony2 tutorial但它不起作用。

我遵循的symfony驗證教程,並創建我的YML文件,但是當我充滿了壞ADRESS我的電子郵件FIEL,錯誤顯示效果還是symfony的默認錯誤,而不是我的自定義消息...

/** 
* 
* @Route("/info") 
*/ 
class InfoController extends BaseController 
{ 
    public function contactusAction(Request $request) 
    { 
    $constraint = new Collection(array('email' => new Email(array('message' => 'Adresse email invalide')),)); 

    $contact = new ContactUs(); 
    $form = $this->createFormBuilder($contact) 
     ->add('nom', 'text') 
     ->add('mail', 'email') 
     ->add('sujet', 'choice', array('choices' => array('pt' => 'Problemes techniques', 'bi' => 'Boite a idees', 'd' => 'Divers'))) 
     ->add('msg', 'textarea') 
     ->getForm(); 
    } 
} 

這是我的看法

<form action="" method="post" {{ form_enctype(form) }} class="contactus"> 
     {{ form_errors(form) }} 
     <div> 
      {{ form_label(form.nom, 'Nom : ') }} 
      {{ form_errors(form.nom) }} 
      {{ form_widget(form.nom) }} 
      </div> 
      <div> 
      {{ form_label(form.mail, 'Email : ') }} 
      {{ form_errors(form.mail) }} 
      {{ form_widget(form.mail) }} 
      </div> 
     <div> 
      {{ form_label(form.sujet, 'Sujet : ') }} 
      {{ form_errors(form.sujet) }} 
      {{ form_widget(form.sujet) }} 
      </div> 
     <div> 
      {{ form_label(form.msg, 'Message : ') }} 
      {{ form_errors(form.msg) }} 
      {{ form_widget(form.msg) }} 
      </div> 
     <input type="submit" value="Envoyer" /> 
     {{ form_rest(form) }} 
    </form> 

這裏是我的YML文件

PROJECT\CoreBundle\Entity\ContactUs: 
    properties: 
     mail: 
      - Email: 
       message: Adresse email invalide. 

回答

0

我想錯誤信息非常明確:

$form = $this->createFormBuilder($contact, array('constraints' => $constraint)) 

沒有第二個選項constraint。我不知道你的目標是什麼,但這不是正確的方法。

如果您想要進行驗證,您應該在教程中查看Creating Form Classes。在那裏你可以看到如何定義表單和類型類以及如何在字段上設置validation

一些詳細信息:Validation

+0

http://symfony.com/doc/current/book/forms.html#creating-form-classes#adding-validation您可以找到該行,因此約束選項存在,但它不適用於我的代碼;) –

+0

它與驗證一樣;)約束以另一種方式使用。用一個yml文件或約束類。最簡單的方法是製作驗證類並使用註釋。 – Stony

+0

但我只想更改電子郵件輸入的錯誤消息,並且希望在我的控制器中執行此操作。不在yml文件中。這不可能? –

0

使用的mail場,而不是形式本身constraints選項。

對於Symfony 2.0使用this

+0

我試過了, - > add('mail','email',array('constraints'=> $ constraint))但是同樣的錯誤信息 –

+0

哪個Symfony版本? –

+0

sf2,版本2.0.17 –

相關問題