多对多原则以及其他实体

时间:2018-07-18 15:54:34

标签: php doctrine-orm

我有一个木板和前缀。

某些前缀仅与某些板相关,对于所有板,其他前缀也是可能的。

所以我在木板和前缀之间有很多关系。

如何添加这些前缀数量的其他前缀(标记为allowedAtAllboards)?

还是这个标志不是一个干净的解决方案,我应该使用所有前缀来扩展我的交叉表

prefix_id | board_id
1|1
1|2
1|3
...

编辑: 我有3张桌子: 板,其中包含有关板的信息,例如ID,名称...

带有ID,名称的前缀

board_x_prefix和board_id,前缀ID

我需要木板和前缀之间的关系,并且创建了以下关系:

/**
 * @ManyToMany(targetEntity="Prefix")
 * @JoinTable(name="board_x_prefix",
 *      joinColumns={@JoinColumn(name="prefix_id", referencedColumnName="id")},
 *      inverseJoinColumns={@JoinColumn(name="board_id", referencedColumnName="id", unique=true)}
 *      )
 */

现在,我将所有前缀映射到板上,这取决于board_x_prefix中的条目,例如$board->getPrefixes()

prefix_id | board_id
1|1
1|2
1|3
2|3
...

问题是,我想要其他所有板都可使用的前缀,所以我在前缀类上创建了标志allowedAtAllboards,但是$board->getPrefixes()当然不会返回这些前缀的数量。

我可以通过$board->getPrefixes()在模型(面板或前缀)本身中处理所有映射和带有标志的所有前缀吗?还是必须编写存储库类?

对不起,我希望现在清楚了

0 个答案:

没有答案