FOSUser捆绑包无法在命令行中创建用户

时间:2014-10-12 12:43:53

标签: symfony sonata-admin

我是symfony(symfony2)的新手,所以我被要求安装sonata admin和FOSUser bundle进行集成。一切都很顺利,奏鸣曲管理员工作正常,fosuser的配置应该很好,就像在tuts。

当我去我的终端并写下这个命令时:

  

php app / console fos:user:create admin admin@local.com admin

我收到此错误

  

[学说\ ORM \ ORMInvalidArgumentException]
    “Sonata \ UserBundle \ Entity \ BaseUser”(admin)类型的给定实体没有
     identity / no id值设置。它无法添加到身份映射中。

我不知道如何处理此错误。

2 个答案:

答案 0 :(得分:4)

谢谢大家的帮助:)。

在@fred先生的回答和我的一个朋友的帮助下,错误消失了,捆绑包正在运行,如果你遇到同样的问题,请做下一个:

转到src / Application / Sonata / UserBundle / Entity / User.php 添加

public function __construct() {
        parent::__construct();
    }

然后转到主config.yml并添加:

fos_user:
    db_driver: orm
    firewall_name: main
    user_class:     Application\Sonata\UserBundle\Entity\User

答案 1 :(得分:2)

我认为问题在于FOSU​​serBundle需要一个具有Doctrine ID映射的实体。试试这个:

在其中一个捆绑包中创建自己的用户类:

<?php

namespace YOUR\NAMESPACE\YourUserBundle\Entity;

use Sonata\UserBundle\Entity\BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="my_users")
 */
class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    public function __construct()
    {
        parent::__construct();
    }
}
?>

现在将用户类指向新实体:

fos_user: 
    user_class: YOUR\NAMESPACE\YourUserBundle\Entity\User