Как, если идентификатор существует от одной модели к другой модели? - PullRequest
1 голос
/ 07 февраля 2020

У меня есть модель пользователя и playerteam. когда определенная команда выбирает пользователя для своей команды. Затем он сохраняется в модели команды игрока, такой как team_id и player_id. (Player_id - это user_id); Теперь я хочу показать только тех пользователей, которые не входят в модель playerteam. Для этого я передал

User::with('playerTeam)->get() 

в блейд-файле. Он показывает всех пользователей, но я хочу показать только тех пользователей, чей идентификатор отсутствует в модели playerteam. это код, который я пробовал в модели пользователя

public function playerTeam()
{
    return $this->hasMany(PlayerTeam::class,'player_id');
}

Контроллер

$data['users'] = User::with('playerTeam')->get();
$data['playerteam'] = PlayerTeam::get();
return view('page',$data);

Итак, как мне показать пользователей, которые не входят в модель playerteam.

Ответы [ 4 ]

1 голос
/ 07 февраля 2020

использовать функцию обратного вызова

использовать whereDoesntHave

$data['users']  = User::whereDoesntHave('playerTeam', function ($query) {
    $query->where('column', 'value');
})->get();

См. Следующую ссылку

где DoesntHave

1 голос
/ 07 февраля 2020
   $users = User::doesntHave('playerTeam')->get();
1 голос
/ 07 февраля 2020

Вы можете использовать doesntHave или whereDoesntHave

$data['users']  = User::whereDoesntHave('playerTeam', function ($query) {
    $query->where('column', 'value');
})->get();

Или даже проще

$data['users']  = User::doesntHave('playerTeam')->get();
//...

Проверить документы здесь

1 голос
/ 07 февраля 2020

Вы можете использовать eloquent doesntHave метод, подобный этому.

User::doesntHave('playerTeam)->get();

Он вернет всех пользователей, которые не имеют отношения с playerTeam.

Прочитайте документы здесь laravel не имеет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...