2014-01-12 17 views
0

我正在關注Laravel 4上的一個教程,但我被困在一個特定的點上。我想返回一個顯示用戶照片的視圖。爲此,我有我的控制器下面的方法:Laravel 4.1:即使控制器傳遞正確的json,查看也不會回顯查詢

public function show($id) 
{ 
    $user = User::whereId($id)->with('photo')->first(); 

    return View::make('authenticated.users.show', compact('user')); 
} 

如果我回到$用戶,我在瀏覽器中看到的JSON似乎是完全正確的。

但是,如果我嘗試顯示在我收到此錯誤show.blade.php觀點:

Undefined property: Illuminate\Database\Eloquent\Collection::$id 

我使用在我看來,代碼如下:

<li>{{ $user->photo->id }}</li> 

它完全如教程所示,但它不能解決問題。

我非常感謝一些幫助。

謝謝。

+0

也許嘗試{{$用戶>照片() - > ID}} – Laurence

+0

HM這不工作,要麼... – patrick

回答

0

這很像您在用戶模型中使用hasMany關係。當使用hasMany關係時,它將返回一個Collection對象,而不是您的模型本身。看一下Collection對象的API,你會發現很多有用的方法。

你可能應該做的是這樣的。

foreach ($user->photo->all() as $photo) 
{ 
    echo $photo; 
} 

或者,如果用戶只有一張照片,然後改變你在用戶模式hasOne關係。然後你可以像現在一樣使用它。

echo $user->photo; 
+0

{$回聲照片; } {echo $ photo; } {echo $ photo; } {echo $ photo; } – patrick

+0

這就是我得到的結果。注意:用戶有4張照片,所以必須對照片做任何事情。 – patrick

+0

哦對不起,我發現我的錯誤。沒有使用刀片。 – patrick