2016-07-30 31 views
-1

我有三個模型和相應的表格。用戶,帖子,評論。 用戶表的列是id,名稱,電子郵件。 職位表的列是id,標題,正文。 評論表的列是id,user_id,post_id,comment。無法在laravel的帖子視圖中獲取評論的用戶數據

用戶模型具有如下這樣的功能:

public function comments(){ 

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

Post模型具有如下這樣的功能:

public function comments(){ 

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

評論模型具有如下兩個功能:

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

相關問題