检查模型是否存在多对多关系的最佳方法

Ash*_*ett 1 laravel eloquent

我有一些数据被发布到服务器并且正在检索Player基于该数据(id).我使用以下代码:

$player = Player::findOrFail($player_data['id']);
Run Code Online (Sandbox Code Playgroud)

但是,我想检查这是否Player属于特定的Team- 一种belongsToMany关系.

有没有比以下更好的方式:

if (! count($player->team()->find($teamId))) {
    // exit early, form may have been 'hacked'
    abort(404);
}
Run Code Online (Sandbox Code Playgroud)

team()而不是teams(),即使它是多对多的.

Ale*_*nin 7

使用contains()方法:

$player->team->contains($teamId);
Run Code Online (Sandbox Code Playgroud)

contains方法确定集合是否包含给定项