Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Этот запрос выводит турниры со статусом 1, на которые записался пользователь.
$userRegisteredTo = Tournament::whereHas('users', function($query){
$query->where('user_id', Auth::id());
})->where('status', '1')->get();
Можно ли это считать жадной загрузкой?
Здравствуйте!
Подскажите почему не работает выборка данных для связи многие ко многим.
Есть турниры, модель Tournament, и игроки, модель User.
Модели друг с другом связаны.
public function users(){
return $this->belongsToMany('App\User')->withPivot('tournament_id', 'user_id')->withTimestamps();
}
public function tournaments(){
return $this->belongsToMany('App\Tournament')->withPivot('tournament_id', 'user_id')->withTimestamps();
}
Я хочу получить только турниры, у которых статус = 1 и на которые записался пользователь.
Для этого использую нетерпеливую загрузку и ограничения нетерпеливой загрузки, как описано здесь - Нетерпеливая загрузка
В контроллере указано.
$viewerId = Auth::id();
$tournamentsForShow = Tournament::whereStatus(1)->with(['users' => function ($query){
$query->where('user_id', '=', '$viewerId');
}])->get();
foreach ($tournamentsForShow as $tournament) {
echo $tournament->pivot->user_id;
}
получаю ошибку - Trying to get property 'user_id' of non-object
Страницы 1