0

我注意到 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
    }
    */

}

那么如何添加一个索引来表示“电子邮件”字段?我应该只覆盖继承的属性吗?

4

1 回答 1

1

实际上 FOSUserBundle 确实创建了。你应该跑

php app\console 学说:mongodb:schema:update

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

如果您需要自定义索引,请使用此方法

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

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

于 2012-09-21T10:25:51.523 回答