我完成了sonata-admin bundle + fosuser bundle的安装。 在使用命令行创建用户后,我发现当我使用admin admin登录时,它给了我不良凭据,所以在调试一段时间后我发现fos:user:create save users to fos_user_user not user table。 如何解决这个问题并使fos:user:在用户表中创建保存创建的用户。
这是我的config.yml的片段
fos_user:
db_driver: orm
firewall_name: main
user_class: Application\Sonata\UserBundle\Entity\User
#user_class: Sizar\JobeetBundle\Entity\SizarUser
group:
group_class: Application\Sonata\UserBundle\Entity\Group
sonata_user:
class: # Entity Classes
user: Application\Sonata\UserBundle\Entity\User
如果需要任何配置,那么我将在下面的评论中添加
User.php类
namespace Application\Sonata\UserBundle\Entity;
use Sonata\UserBundle\Entity\BaseUser as BaseUser;
class User extends BaseUser {
protected $id;
public function __construct() {
parent::__construct();
}
public function getId() {
return $this->id;
}
}
orm用户文件
<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="Application\Sonata\UserBundle\Entity\User" table="fos_user_user">
<id name="id" column="id" type="integer">
<generator strategy="AUTO" />
</id>
</entity>
</doctrine-mapping>
答案 0 :(得分:1)
您必须更新映射配置,以便该doctrine知道它映射到哪个表
<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mapping ...>
<entity name="Application\Sonata\UserBundle\Entity\User" table="fos_user_user">
...
</entity>
</doctrine-mapping>
在这里,您需要将“table”属性更新为正确的数据库表。可能你需要recreate the database。
有关使用FosUserBundle实体设置的详细信息,请参阅FosUserBundle - Install docs