2017-01-18 6 views
1

私はいくつかのデータをサーバーにポストし、そのデータ(ID)に基づいてPlayerを取得しています。私は、次のコードを使用しています:モデルが多対多の関係にあるかどうかを確認する最も良い方法

$player = Player::findOrFail($player_data['id']); 

しかし、私はこのPlayerが特定Teamに属していることを確認したい - belongsToMany関係。

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

のようなものよりも良い方法はありますか?

team()であり、teams()ではないが、多対多であっても。

答えて

5

使用contains()方法:

$player->team->contains($teamId); 

ザ・メソッドが含まれているコレクションが

+1

はありがとう与えられたアイテムが含まれているかどうかを決定します!だから、 '' 'id'''を' '' contains'''に渡すことは適切ですか? – AshMenhennett

+1

@AshMenhennetは可能ですが落とし穴になるかもしれませんが、まずチームを取得してパラメータとして渡すことをお勧めします。リンクの2番目の例を見てください。 –

+1

@AshMenhennettはい、適切です。 –

関連する問題