2014-01-12 1 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')); 
} 

$ user를 반환하면 브라우저에서 볼 수있는 json이 완벽하게 올바른 것으로 보입니다. 나는이 오류가 점점 오전 show.blade.php보기에 그 표시하려고하면

그러나 :

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

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

내보기에서 사용하고있는 코드는 다음입니다

자습서에 표시된 것과 정확히 동일하지만 작동하지 않습니다.

나는 도움을 많이 주실 것입니다.

감사합니다.

+0

아마 시도 {{$ 사용자 -> 사진() -> ID}}이 중 하나가 작동하지 않습니다 – Laurence

+0

흠 .. – 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