2014-12-04 41 views
0

我想從使用雄辯的2個表中獲取所有列。雄辯的查詢得到兩個表使用查找()

到目前爲止,我只能從一個獲得信息。

這是我的2種型號:

CLASE模型

public function courses() { 
    return $this->hasMany('Course'); 
} 

類有許多課程

課程模式

public function clase() { 
    return $this->belongsTo('Clase','Clase_id'); 
} 

課程表已經Clase_id他們

鏈接

如果我運行此查詢

Clase::find(2)->courses; 

它搜索課程表clase_id = 2,返回所有列

但我怎麼得到CLASE列過?

更新

如果我運行此:

$values = course::with('clase')->find(3); 

我得到這個數組:

{"id":3,"course":"Essay June","desc":"English Essay for potentiL KD DK NVER ","points":10,"Clase_id":2,"active":0,"clase":{"id":2,"Year":"1","Name":"English","user_id":1}} 

所以Clase_id = 2和Clase.id = 2,他們是聯繫在一起的。 但我的查詢搜索Courses.id,它需要搜索Clase_id。

回答

0

你已經做了,只是用它;

$clase = Clase::find(2); 

$courses = $clase->courses; 

如果因爲某種原因需要所有列,那麼請使用連接,但我懷疑你是否真的這樣做。

+0

嗨,它不會返回clase表中的列。 – zlatek 2014-12-05 06:36:56

+0

當然是的。你知道ORM是什麼嗎? '$ clase'是'clase'表中的行,'$ clase-> courses'是'courses'表中的行集合。所有包裹在雄辯的模型。當然,只要你的設置是正確的('$ table',$ primaryKey'等 - 如果你不確定,請檢查文檔) – 2014-12-05 09:10:50

+0

我很抱歉你完全正確。乾杯 – zlatek 2014-12-06 05:30:36

0

試試這個:

Clase::find(2)->courses()->get(); 

OR

Clase::where('id', '=', 2)->courses()->get(); 

讓我知道,如果這樣做的伎倆。

回想起來......我想這跟OP的查詢現在不一樣了。錯誤的問題。應該是像這樣:

$clases = Clase::find(2)->courses(); 

然後讀課程/ clases像往常一樣:

foreach($clases AS $clase){ 
    echo $clase->column_name; 
} 
+0

那麼,你的第二塊是錯誤的 - 你不能用關係鏈查詢,第三塊返回'Relation'對象,所以你不能把它提供給foreach,因爲它還沒有執行。 – 2014-12-04 22:07:15

+0

它沒有工作,它仍然給我只是課程表。我做了一個upate與()的工作,但它搜索ID號Clase ID – zlatek 2014-12-05 06:42:41