作为这个问题的一个例子,让我使用电视节目,电影和演员。每个电视节目和电影都有多个演员,每个演员都在一个或多个电视节目和/或电影中。如果我在它们之间建立多态的多对多关系,我似乎可以分别查询演员的所有电视节目及其所有电影,但尽管我可以想出所有的谷歌搜索,我还没有找到一种在一个集合中查询所有演员的电视节目和/或电影的联合的方法。这不是多对多关系的有用性吗?
如果事实证明这确实可行,我可能会添加包括表格和模型设置的注释来实现这一点,因为我还没有能够使它工作。如果不可能,你能帮助我理解这种关系的目标,因为我显然不理解它。在我看来,如果没有这个问题,我就不会使用两个多对多的关系。
答案 0 :(得分:0)
我不确定它是否会解决您的问题,但您应该能够通过合并将一个电视节目和电影放在一个集合中
演示示例模型
class actor
{
public function tv_shows()
{
return ...
}
public function movies()
{
return ...
}
}
您可以将它们组合起来:
actor::get(1)->movies->merge(actor::get(1)->tv_shows);
这将返回一系列电影和电视节目。
为了让生活更轻松,请在actor类中创建follow函数
public function tvAndMovies()
{
return self::movies->merge(self::tv_shows);
}
希望有帮助