で複数のhas()/ orHas()を実行するにはまず最初に、laravel ORMを使用して、Raw SQLメソッドではなくクエリビルダを使用するといいでしょう。だから私の質問です。laravel 5.4 orm
私はbelongTo(User::class)
リレーションと6 hasMany(TextPost::class)
- というようなボットと呼ばれるモデルを持っています。 hasMany(...)
リレーションシップの少なくとも1つのレコードを持つボットを取得したい。したがって、ボットにTextPost
のレコードがある場合、返される必要があります。ボットにhasMany(...)
リレーションのいずれもない投稿がない場合、返されません。
これまでのところ、私は私のUser
モデル
public function broadCasters()
{
return $this->bots->has('text_post')->orHas('photo_post')->orHas('media_post')->orHas('video_post')->orHas('audio_post')->orHas('document_post');
}
が、そのは仕事に行かないでこのような何かを持っているとCall to a member function orHas() on boolean
ので、私はこのような何かにそれを変更したいと言う:
public function broadCasters(){
return $this->bots->where(function($query){
return $query->has('TextPost')->orHas('PhotoPost') ...;
});
}
でもこれはうまくいかず、Missing argument 2 for Illuminate\Support\Collection::where()
と表示されます。私は何をすべきか?
私はlaravel 5.4を使用しています。私はこの質問whereHas on multiple relationships - laravel 5.4を見て、それは私が欲しいものに近いが、まだ答えはありません!
もこの質問は、あまりにもCombining AND/OR eloquent query in Laravel
私の質問の別のですが、そのどちらか動作していません。
、今これは私が欲しいものEXACTLYされますが、そのFOR LARAVEL 4と私が使用しているため、動作していないが、私が思うにLARAVEL 5.4
Laravel eloquent multiple has and where clause
$ reqObj->(関数($ qは){$ q-で>( 'グループ')は、$ q-で> orHas( 'GROUP_MEMBER');})ここで、 ;私のためにうまくいっているようだ。 – tromtv