@moscowthebest

Есть ли более лучший способ сделать это?

Есть таблицы и модели следующие: 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);
    }


Заранее всем спасибо!
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы