【问题标题】:Symfony2 and Doctrine multiple ManyToMany relationSymfony2 和 Doctrine 多重多对多关系
【发布时间】:2014-09-14 14:42:50
【问题描述】:

我的模型包含三个主要元素:问题、答案和游戏。他们每个人都应该有关联的标签,但这些标签需要共享。我的意思是,这三种元素应该使用相同的标签:“科学”标签应该适用于问题、答案或游戏,或三者。

我应该怎么做?我是否在标签实体中为每种元素添加了 ManyToMany 字段,还是有其他方法可以关联它们?有什么想法吗?

【问题讨论】:

    标签: php symfony doctrine-orm


    【解决方案1】:

    我会选择选项 1) 在每个实体上添加多对多关系。

    class Question
    {
        // ... 
    
        /**
         * @ORM\ManyToMany(targetEntity="Tag")
         *
         **/
        private $tags;
    }
    
    class Answer
    {
        // ...
    
        /**
         * @ORM\ManyToMany(targetEntity="Tag")
         *
         **/
        private $tags;
    }
    
    class Game
    {
        // ...
    
        /**
         * @ORM\ManyToMany(targetEntity="Tag")
         *
         **/
        private $tags;
    }
    

    【讨论】:

    • 你可以看看这个 Doctrine 扩展 github.com/FabienPennequin/DoctrineExtensions-Taggable
    • 使用此解决方案,Tag 实体将有 3 个关联,每个 Tag 对象将有 2 个空关联。我认为 Ikzer 正在寻找更清洁的东西。
    • 对。在这种情况下,我的 Tag 将有一个 QuestionID、AnswerID 和 gameID,通常其中两个会不必要地为空。
    • Taggable 扩展看起来不错,我想我会用它,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 2013-10-11
    • 1970-01-01
    相关资源
    最近更新 更多