Symfony2 FosUserBundle不会使用自定义实体保护用户实体

时间:2015-02-22 08:33:10

标签: symfony doctrine-orm fosuserbundle

我有自己的用户实体,扩展了Fos。它能够将另一个实体作为manyToOne关系附加到它上面。

在我自己的配置文件控制器中使用以下代码会导致此实体未添加到用户实体。

$user = $repo->find($user->getId());

我所有其他自定义字段都已就位,只是缺少此实体。这种关系看起来像这样

manyToOne:
    game_system:
        targetEntity: Acme\NameofBundle\Entity\GameSystem
        joinColumn:
            onDelete: SET NULL
            name: game_system_id
            referencedColumnName: id

修改

值得注意的是getGameSystem调用在我的主Bundle,NameofBundle中运行。

但它在MemberBundle内失败,MemberBundle扩展了FOSUserBundle。 GameSystem实体位于NameofBundle内,而我的User是我的MemberBundle。

修改2

我的config.yml

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: Acme\MemberBundle\Entity\User
    group:
        group_class: Acme\MemberBundle\Entity\User

1 个答案:

答案 0 :(得分:0)

这条线似乎有问题:

$user = $repo->find($user->getId());

这似乎是多余的 如果您还没有从数据库中获取用户,您如何识别用户? 或者,如果您已经有用户对象,则不需要从数据库中获取它。 以下更正确,并获得您想要的ID,并且必须使用findAll()创建一个列表。

$user = $repo->find($id);