Есть таблицы и модели следующие: Posts, Comments.
Внутри модели Post реализовал связку:
public function comments()
{
return $this->hasMany('App\Comment');
}
С помощью следующего кода получаю все комментарии к посту.
$post->comments
Теперь о проблемке...
Это таблица комментариев:
$table->bigIncrements('id');
$table->string('body');
$table->integer('user_id');
$table->integer('post_id');
$table->timestamps();
Как вы можете увидеть, я не могу узнать как зовут автора комментария. Дело не только в имени, но и в других данных. Не зацикливайтесь на этом.
Окей, решаемо это все. Связка в модели Comment...
public function user()
{
return $this->belongsTo('App\User');
}
В конечном итоге, когда я показываю Post, мне приходится писать много чего... А Laravel фреймворк для ленивых, значит чего-то я не знаю.
Как можно грамотно реализовать этот код? Хочу upgrade!
public function show(Post $post)
{
$comments = array();
foreach ($post->comments as $comment) {
$comment->user;
array_push($comments, $comment);
}
$post['comments'] = $comments;
return response()->json($post);
}
Заранее всем спасибо!