如何向FOSUserBundle添加索引:用户?

时间:2012-09-18 14:39:02

标签: mongodb symfony doctrine symfony-2.1 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 个答案:

答案 0 :(得分:1)

实际上FOSUserBundle会创建。你应该运行

  

php app \ console doctrine:mongodb:schema:update

创建它们。默认情况下,有usernameCanonical和emailCanonical索引。

如果您需要使用自定义索引this approach

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

并且不要忘记再次运行 doctirne:mongodb:schema:update 任务。