【问题标题】:How to add indexes to FOSUserBundle:User?如何向 FOSUserBundle:User 添加索引?
【发布时间】:2012-09-24 04:11:01
【问题描述】:

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

}

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

【问题讨论】:

    标签: mongodb symfony doctrine symfony-2.1 fosuserbundle


    【解决方案1】:

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

    php app\console 学说: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 任务。

    【讨论】:

    • 我使用的是doctrine:mongodb:schema:create --index。您的解决方案有效:php app\console doctrine:mongodb:schema:update.
    猜你喜欢
    • 2011-12-24
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 2017-04-30
    • 2016-08-04
    相关资源
    最近更新 更多