如何在Laravel 4.1中使用多态多对多关系?

时间:2014-10-17 17:22:48

标签: laravel laravel-4 eloquent

作为这个问题的一个例子,让我使用电视节目,电影和演员。每个电视节目和电影都有多个演员,每个演员都在一个或多个电视节目和/或电影中。如果我在它们之间建立多态的多对多关系,我似乎可以分别查询演员的所有电视节目及其所有电影,但尽管我可以想出所有的谷歌搜索,我还没有找到一种在一个集合中查询所有演员的电视节目和/或电影的联合的方法。这不是多对多关系的有用性吗?

如果事实证明这确实可行,我可能会添加包括表格和模型设置的注释来实现这一点,因为我还没有能够使它工作。如果不可能,你能帮助我理解这种关系的目标,因为我显然不理解它。在我看来,如果没有这个问题,我就不会使用两个多对多的关系。

1 个答案:

答案 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);
}

希望有帮助