2016-07-30 18 views
-1

私は3つのモデルと対応するテーブルを持っています。ユーザ、投稿、コメント。 ユーザーの列は、ID、名前、電子メールです。 投稿テーブルの列は、id、title、bodyです。 コメント表の列は、id、user_id、post_id、commentです。laravelの投稿のビューにコメントのユーザーデータを取得できません

Userモデルは以下のように、この機能を持っています

public function comments(){ 

     return $this->hasMany('App\Comment'); 
    } 

Postモデルは以下のように、この機能を持っています

public function comments(){ 

     return $this->hasMany('App\Comment'); 
    } 

コメントモデルは以下のようにこれら2つの機能があります。

public function user(){ 

     $this->belongsTo('App\User'); 
    } 

    public function post(){ 

     $this->belongsTo('App\Post'); 
    } 

PostControllerの機能を示すシングル投稿は以下の通りです:

public function show($slug) 
    { 
     $post = Post::where('slug', $slug)->first(); 
     return view('post.show')->withPost($post); 
    } 

とshow.blade.phpに私はこの機能を実現しようとしている:

@foreach($post->comments as $comment) 
<p> 
{{$comment->user->name}} 
</p> 
@endforeach 

は、なぜそれが関係メソッドがオブジェクトを返す必要がありますというエラーを投げていますか?

答えて

0

あなたはので、あなたのコードになり、returnに関係が必要になります。

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

public function post(){ 
    return $this->belongsTo('App\Post'); 
} 
+0

OMGは.....私はそれを逃したのか... – babu

+0

はハハ、私たちのすべてに起こる:) – Tom

関連する問題