2012-02-08 21 views

回答

0

閱讀文檔 Rendering each Field by Hand

{{form_errors(form.username)}} 
{{form_errors(form.)}} 

或創建表單主題化 Global Form Theming

+0

該消息來自於FOSU​​serBundle的validation.xml中: '<約束名= 「FOS \ UserBundle \驗證\唯一」> <選項名= 「屬性」> usernameCanonical <選項名=「消息「>用戶名是已經使用 <選項名=」 基團「> 登記 資料 ' 但是在登記表不呈現usernameCanonical字段。所以錯誤信息不會綁定到任何字段。 如何在用戶名字段顯示此錯誤消息? – huzi 2012-02-09 23:15:53

+0

@ user1198193我使用{{form_errors(form)}}並覆蓋我的UserBundle中的錯誤消息。 – rtyshyk 2012-02-10 21:31:38

+0

問題是,來自FOSUserBundle約束的消息是全局類錯誤消息,而不是屬性約束。 是否可以配置限制,還是必須修改約束從類約束到屬性約束? – huzi 2012-02-11 01:17:42

0

如果設置FOSUserBundle爲你包的父:

// src/Acme/UserBundle/AcmeUserBundle.php 

<?php 

namespace Acme\UserBundle; 

use Symfony\Component\HttpKernel\Bundle\Bundle; 

class AcmeUserBundle extends Bundle 
{ 
    public function getParent() 
    { 
     return 'FOSUserBundle'; 
    } 
} 

然後你就可以將自己的驗證。 yml文件在config文件夾中,並且您可以設置唯一con的errorPath屬性這樣的straint:

#validation.yml: 
Acme\DemoBundle\Entity\User:  # your user entity 
constraints: 
    - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: { fields: usernameCanonical, errorPath: username, groups: [CustomRegistration, Default] } 

請確保您設置errorPath作爲您的窗體上的實際字段的名稱。

相關問題