2014-10-17 75 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