【问题标题】:symfony 2 many to many relation crudsymfony 2 多对多关系 crud
【发布时间】:2014-05-10 08:59:14
【问题描述】:

我创建了多对多关系并通过命令行生成了 crud。我有用户和组。

USER
    /**
     * @ORM\ManyToMany(targetEntity="Grup", mappedBy="users")
     * @ORM\JoinTable(name="user_has_grup",
     *     joinColumns={@ORM\JoinColumn(name="grup_id", referencedColumnName="id")},
     *     inverseJoinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")}
     * )
     */
    protected $grups;

Grup
    /**
     * @ORM\ManyToMany(targetEntity="User", inversedBy="grups")
     * @ORM\JoinTable(name="user_has_grup",
     *     joinColumns={@ORM\JoinColumn(name="grup_id", referencedColumnName="id")},
     *     inverseJoinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")}
     * )
     */
    protected $users;

当我创建用户组时出现,但我无法将用户分配到组。仍然当我去编辑组时,我可以将用户分配给它并且它运行良好。

如果我希望能够双向进行,我需要改变什么?是否有任何 Doctrine Entity 更改或控制器?

【问题讨论】:

    标签: mysql database doctrine-orm many-to-many


    【解决方案1】:

    不知道是不是你的问题,因为代码不够...
    但我认为这会有所帮助:Symfony2-Doctrine: ManyToMany relation is not saved to database
    以及官方文档:Owning and Inverse Side on a ManyToMany association

    【讨论】:

    • 已解决:这是答案docs.doctrine-project.org/projects/doctrine-orm/en/latest/… 反面必须使用 OneToOne、OneToMany 或 ManyToMany 映射声明的 mappedBy 属性。 mappedBy 属性包含拥有方的关联字段的名称。拥有方必须使用 OneToOne、ManyToOne 或 ManyToMany 映射声明的 inversedBy 属性。 inversedBy 属性包含反面关联字段的名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多