2016-07-30 3 views
-1

У меня есть три модели и соответствующие таблицы. Пользователь, сообщение, комментарий. Столбец таблицы пользователей - это идентификатор, имя, адрес электронной почты. Столбец таблицы столбиков id, название, тело. Столбец таблицы комментариев - id, user_id, post_id, комментарий.не удалось получить данные пользователя комментария в сообщении в laravel

модель Пользователь имеет эту функцию, как показано ниже:

public function comments(){ 

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

сообщение модель имеет эту функцию, как показано ниже:

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

омг ..... как же я пропустить это ... – babu

+0

Ха-ха, происходит со всеми нами :) – Tom