2014-01-15 38 views
0

我認爲這將是hasMany和belongsTo的簡單用法,但我沒有獲取我的表之一的數據,即標題。Laravel非常新,試圖使用示例,但沒有去

我有兩個表:

scenes (movie scenes basically) 
------ 
int scene_id (can't change to "id".. this is at my company) 
string scene_name 

int title_id 


titles (movie dvd titles) 
------ 
int title_id (same here.. should be id, but it's not) 
string title_name 
string title_description 

有多個場景在「場景」表,具有相同的title_id,因爲你可能猜到。

到目前爲止,我有:

class Title extends Eloquent { 
    protected $table = 'titles'; 
    protected $primaryKey = "title_id"; 

    public function scenes() { 

     return $this->hasMany('Scene','title_id','title_id'); 

    } 

} 

class Scene extends Eloquent { 
    protected $table = 'scenes'; 
    protected $primaryKey = "scene_id"; 

    public function title() { 

     return $this->belongsTo('Title', 'title_id', 'title_id'); 
    } 
} 

它看起來奇怪,我認爲我有兩個標題()和場景()成員函數指定的title_id ..但是那場每個連接什麼帶有多個場景的標題。

呼叫我做得到一個單一場景(假設$ scene_id是一個int),以及每個場景的標題信息一起,就是:

$scene_info = Scene::find($scene_id)->title(); 

如果我做$ scene_info一個的var_dump,我得到了Laravel代碼的lot,我猜我不應該這樣做。
我也收到場景信息,但標題信息是空白的。

只是想知道如果我的任何Laravel編碼是遙遠

史蒂夫

+0

向我們展示這個「很多Laravel代碼」的前三行,請幫助人們理解你所得到的。 –

回答

1

嘗試以下操作:

$scene_info = Scene::with('title')->find($scene_id); 

,或者你可以延遲加載的關係得到了現場後:

$scene_info = Scene::find($scene_id); 

$scene_info->load('title'); 
+0

感謝Anam,它做到了(只嘗試了第一個)。這是正常的,以獲得數據的兩個副本: [ 「屬性」:保護] => 陣列(37){ 和 [ 「原」:保護] => 陣列(37){ @安東尼奧 - 不再將Laravel圖書館嵌入對象中。 Anam的解決方案是 – Steve

+0

是的,你會得到包括關係的數據。例如,如果你的'Scene'模型有其他關係,你可以稍後使用它們,甚至可以從視圖中使用它們。 – Anam

+0

我想知道什麼是實際檢索數據的最佳方式。我使用上面的第一個選項($ scene_info = Scene :: with('title') - > find($ scene_id);),當我使用getOriginal()或getAttributes()時,我只有數據從場景表中,不是標題。 如果我不使用getXXX,只是試圖手動獲取數據,元素鍵的「:: protected」部分阻止我獲取數據。 – Steve

0

終於找到我需要的東西來獲取我的標題信息:

因此,它是:

$info = Scene::with('title')->find($scene_id); (thanks to Anam) 

// to get scene info 
$scene_array = $info->getAttributes(); 

// to get title info 
$title_array = $info->getRelations(); 

你可能會認爲,在調用getRelations()將是不必要拿到冠軍的信息,如果你已經對specifiying「(‘標題’)」第一次通話。

無論如何,再次感謝您們的幫助。

相關問題