我正在使用Symfony2和FOSUserBundle。用戶使用FOSUserBundle和Symfony2標籤用戶名附近的驗證
如果我在註冊表單中輸入用戶名或電子郵件地址(已經在數據庫中),則會顯示註冊表單頂部的錯誤。
如何將錯誤消息放到用戶名/電子郵件字段?
我正在使用Symfony2和FOSUserBundle。用戶使用FOSUserBundle和Symfony2標籤用戶名附近的驗證
如果我在註冊表單中輸入用戶名或電子郵件地址(已經在數據庫中),則會顯示註冊表單頂部的錯誤。
如何將錯誤消息放到用戶名/電子郵件字段?
閱讀文檔 Rendering each Field by Hand
{{form_errors(form.username)}}
{{form_errors(form.)}}
或創建表單主題化 Global Form Theming
如果設置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作爲您的窗體上的實際字段的名稱。
該消息來自於FOSUserBundle的validation.xml中: '<約束名= 「FOS \ UserBundle \驗證\唯一」> <選項名= 「屬性」> usernameCanonical <選項名=「消息「>用戶名是已經使用 <選項名=」 基團「>登記 資料 ' 但是在登記表不呈現usernameCanonical字段。所以錯誤信息不會綁定到任何字段。 如何在用戶名字段顯示此錯誤消息? –
huzi
2012-02-09 23:15:53
@ user1198193我使用{{form_errors(form)}}並覆蓋我的UserBundle中的錯誤消息。 – rtyshyk 2012-02-10 21:31:38
問題是,來自FOSUserBundle約束的消息是全局類錯誤消息,而不是屬性約束。 是否可以配置限制,還是必須修改約束從類約束到屬性約束? – huzi 2012-02-11 01:17:42