2014-10-17 109 views
0

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

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

回答

0

我不知道这是否会解决你的问题,但你应该能够通过合并

例模型演示

class actor 
{ 
    public function tv_shows() 
    { 
     return ... 
    } 
    public function movies() 
    { 
     return ... 
    } 
} 

你同时获得电视节目和电影中的一个集合可以如下组合它们:

actor::get(1)->movies->merge(actor::get(1)->tv_shows); 

这将返回电影和电视节目的单一集合。

为了让生活在演员类

public function tvAndMovies() 
{ 
    return self::movies->merge(self::tv_shows); 
} 

希望帮助

+0

你说得对,它并没有回答这个问题,因为你可以做更容易创建后续的功能与任何两个查询所以多对多关系的目的仍然没有解释,但它确实给出了我现在正在寻找的结果,并且似乎是一个相当干净的方法。谢谢你! – a300600st 2014-10-20 21:39:44