2014-04-04 78 views
0

說我有兩個表轉移用戶。每個shift都會有一個與之關聯的用戶。我想讓JSON返回這個班次和用戶。我嘗試了以下命令:Laravel 4 ::找到預先加載()

return Shift::find($id)->with('User')->get() 

並且這不起作用。但是,這確實:

return Shift::where('id', '=', $id)->with('User')->get() 

爲什麼?我怎樣才能使用第一個命令?

回答

2

getfind都是執行方法。也就是說,他們將激發查詢並返回結果。基本上,你不應該在一次通話中使用其中的兩個。它可以是find,getfirst,不是它們的組合。

find會返回一個模型,並創建一個基於模型的主鍵的情況下,通常where('id', '=', $id)

get將返回模型的集合。

first將返回單個模型。

這聽起來像你需要:

return Shift::with('user')->find($id); 

user是您Shift模型的關係方法。

public function user() 
{ 
    return $this->belongsTo('User'); 
}