2013-06-23 94 views
0

這一直困擾着我和谷歌沒有任何幫助。我有兩個模型,一個舞蹈模型和一個作者模型。關係是作者可以有很多舞蹈。皺紋是這些對象之間實際存在兩種關係,因爲原來的作者和作者很早就被認爲是重建舞蹈(畢竟這些都是歷史舞蹈)。我可以用load()函數爲使用普通外鍵的關係進行熱切加載,但我無法找到如何加載使用不同名稱外鍵的關係。Eloquent渴望加載雙關係

如何在第二個關係上進行熱切加載?

+0

你必須發佈你的代碼,任何人都可以幫忙 – KyleK

回答

1

當設置了你在哪個鍵,你想使用的關係,指定不同的外鍵關係...... return $this->hasOne('Author', 'foreign-key');

所以,如果我理解你的問題,你想安裝到兩位作者的關係,在同一作者表....

所以也許這樣的事情呢? (你的表字段替換foreign_key

public function orig_author(){ 
return $this->hasOne('Author'); 
} 

public function second_author(){ 
return $this->hasOne('Author', 'foreign-key'); 
} 

public function dance(){ 
return $this->hasMany('Dance'); 
} 

然後,只需檢索它是這樣的... ($id being the id of your dance)

$dance = Dance::with('orig_author','second_author')->find($id); 

但說實話,我從來沒有試過有帶桌子的雙重關係。 ....讓我知道它是否適合你。 :)我很感興趣。

+0

只是想讓你知道我在測試它,但我不想接受答案,至少沒有任何確認或一些注意事項直到我有_confirmed_一個工作語法,真正的解決方案纔會稍有不同。儘管如此,它看起來不錯。 –

+0

終於到了可以明確地測試這一點的地步。是的,這是爲我工作。我誤解了'with()'的文檔是你給它提供了模型名稱,實際上你會給它返回關係的函數名稱。 注意:您的示例應該更新爲「public function orig_author」而不是「public class orig_author」。 ;) –

+0

很高興爲你工作:))但是哇我不相信我錯過了那個班級/功能的東西......大聲笑 – KyleK