У меня три таблицы
users posts comments
мой вопрос в том, как получить сообщение пользователя и опубликовать комментарии в одном запросе.
заранее спасибо
Ответ на ваш вопрос уже дал @ Nicklas Kevin Frank.
для получения следующей ошибки FatalErrorException в Model.php line 867: Ошибка Class 'Post' не найдена, в вашем классе модели измените свой hasmany на это: App \ User
<?php class User extends Model { public function posts() { return $this->hasMany('App\Post'); } }
в моделях должностей
<?php class Post extends Model { public function comments() { return $this->hasMany('App\Comment'); } public function user() { return $this->belongsTo('App\User'); } }
в модели комментариев
<?php class Comment extends Model { public function posts() { return $this->belongsTo('App\Post'); } }
и в вашем контроллере
$data = User::findOrFail(1)->posts()->get();
Вы можете использовать следующее:
User::find($id)->with('posts','posts.comments')->get();
Таким образом вы получаете пользователя, его сообщения и комментарии к сообщениям.
Для доступа к сообщениям, принадлежащим пользователю, вы должны сделать следующее:
User::find($id)->with('posts')->get();