2017-12-27 411 views
2

我有一個多對多的關係:laravel檢查,如果集合包含模型

users (id) 

user_game (user_id, game_id) 

games (id, title) 

我要檢查,如果一個遊戲關聯到一個特定的用戶:

$user = User::find(1); 
$game = Game::where('title', 'pacman'); 

$gameUsers = $game->users() 
$gameHasUser = >>> $gameUsers contains $user <<< // How can I do this? 

回答

1

對於許多一對多你可以使用contains()方法:

$game = Game::where('title', 'pacman')->first(); 
if ($game->users->contains($userId)) { 
    // Do something. 
} 
0

您可以使用where子句中用戶的遊戲列表來查看是否存在遊戲:

$user = User::find(1); 
$gameHasUser = $user->games()->where('title', 'pacman')->isNotEmpty();