2014-02-23 48 views
0

我試圖將所有NotBlank錯誤消息合併爲一個。在Symfony2中合併所有NotBlank錯誤消息

如果錯誤數組至少包含1個NotBlank類型的錯誤,我希望它只顯示一條消息,如「請填寫所有字段」。

我該怎麼做?

這裏是我的樹枝代碼

{{form_start(form, {'attr': {'novalidate': 'novalidate'}})}} 
    <div> 
     {{form_widget(form.firstName)}} 
     {{form_widget(form.lastName)}} 
    </div> 
    <div> 
     {{form_widget(form.username)}} 
     {{form_widget(form.email)}} 
    </div> 
    <div> 
     {{form_widget(form.password.first, {'attr' : { 'placeholder' : 'Password' } })}} 
     {{form_widget(form.password.second, {'attr' : { 'placeholder' : 'Confirm Password' } })}} 
    </div> 
    <div> 
     {{form_label(form.birthday)}} 
    </div> 
    <div> 
     {{form_widget(form.birthday)}} 
    </div> 

    <div> 
     {{form_widget(form.gender)}} 
    </div> 

    <div> 
     {{form_widget(form.save)}} 
    </div> 

    {{ form_errors(form.firstName) }} 
    {{ form_errors(form.lastName) }} 
    {{ form_errors(form.username) }} 
    {{ form_errors(form.email) }} 
    {{ form_errors(form.password.first) }} 

    {{form_end(form)}} 

回答

0

您可以創建一個CallbackValidator

http://symfony.com/doc/current/reference/constraints/Callback.html

,並在validate方法,檢查所需的字段中至少有一個是空的,如果真,請致電

/** 
* @Assert\Callback 
*/ 
public function validate(ExecutionContextInterface $context) 
{ 
    if(empty($this->field1) || empty($this->field2)) { 
     $context->addViolation($message); 
    } 
} 

This方式你會收到一個全球性的表單錯誤。