2012-09-18 99 views
0

我注意到FOSUserBundle沒有創建任何索引。如何添加索引到FOSUserBundle:用戶?

我們應該創建一個用戶文檔是這樣的:

use FOS\UserBundle\Document\User as BaseUser; 
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB; 

/** 
* @MongoDB\Document 
*/ 
class User extends BaseUser 
{ 
    /** 
    * @MongoDB\Id(strategy="auto") 
    */ 
    protected $id; 

    /* 
    public function __construct() 
    { 
     parent::__construct(); 
     // your own logic 
    } 
    */ 

} 

那麼,如何添加一個索引說,「電子郵件」字段?我應該只覆蓋繼承的屬性嗎?

回答

1

其實FOSUserBundle確實創建。您應該運行

PHP應用程序\控制檯學說:MongoDB中:模式:更新

創建它們。默認情況下有usernameCanonical和emailCanonical索引。

如果需要定製指數使用this approach

<?php 
/** 
* @MongoDB\Document 
* @MongoDB\Indexes({ 
* @MongoDB\Index(keys={"email"="asc"}) 
* }) 
*/ 
class User extends BaseUser { 
    // ... 

,不要忘了運行doctirne:再次任務更新:MongoDB中:模式。

+0

我正在使用'doctrine:mongodb:schema:create --index'。您的解決方案工作:'php app \ console學說:mongodb:架構:更新'。 – ChocoDeveloper