我是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值设置。它无法添加到身份映射中。
我不知道如何处理此错误。
答案 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)
我认为问题在于FOSUserBundle需要一个具有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