Laravelにいくつかのデータを入力する際に問題があります。Laravelのクエリステップの最大数
私はやって私のクエリを起動し、次の:私は例$usersall = $query->whereHave_pics('1')->get();
を照会する場合
$query = User::whereRole('advertiser');
は、それから私はまた$query
がwhere
の長い文字列で構成することができます0
have_pics
を持っているユーザーを取得ユーザの選択に応じて動的なクエリ。これらのうちwhere
クエリの中にはhave_picsに0を持つユーザーは対象ですが、whereHave_pics( '1')でクエリを終了すると、Have_pics
に '1'のユーザーしか得られませんか?
laravelがクエリビルダで処理できる最大数のステップがある場合、私は疑問に思っていますか?例えば
、IけどwhereHave_pics( '1')、クエリの開始時に、このような場合:
$query = User::whereRole('advertiser')->whereHave_pics('1');
/* More queries are added */
$usersall = $query->get();
が、それは完全にwhereHave_pics
なくwhereRole
を無視し... もし私が
$query = User::whereRole('advertiser');
/* More queries are added */
$usersall = $query->whereHave_pics('1')->get();
これは、クエリを作成するユーザーの選択にもよります。
私は、クエリモデルを変更するなど、さまざまな回避策を試しています。 whereHave_pics('1')
の代わりにwhere('have_pics', '1')
またはwhere('have_pics', true)
など
私は次に何を試してもわかりません。
これは、問題は、あなたがどこの連鎖とorWhereはLaravelで作品を連鎖する方法を理解する必要があるユーザー
public function search_adv(Request $request, $locale = 'dk') {
App::setLocale($locale);
$hair_queries = [
['input' => 'blonde', 'operator' => '=', 'field' => 'haircolor'],
['input' => 'brown', 'operator' => '=', 'field' => 'haircolor'],
['input' => 'red', 'operator' => '=', 'field' => 'haircolor'],
['input' => 'dark', 'operator' => '=', 'field' => 'haircolor'],
];
$eye_queries = [
['input' => 'green', 'operator' => '=', 'field' => 'eyecolor'],
['input' => 'brown', 'operator' => '=', 'field' => 'eyecolor'],
['input' => 'blue', 'operator' => '=', 'field' => 'eyecolor'],
['input' => 'hazel', 'operator' => '=', 'field' => 'eyecolor'],
['input' => 'silver', 'operator' => '=', 'field' => 'eyecolor'],
['input' => 'amber', 'operator' => '=', 'field' => 'eyecolor'],
];
$query = User::whereRole('advertiser');
/* HAIRCOLOR */
$hair = 0;
foreach($hair_queries as $filter) {
if($hair == 0) {
if(!empty($request->input($filter['input']))) {
$query = $query->where(
$filter['field'],
$filter['operator'],
$filter['input']
);
}
}
if(!empty($request->input($filter['input']))) {
$hair++;
}
}
if ($hair >= 2) {
foreach($hair_queries as $filter){
if(!empty(request()->input($filter['input']))){
$query = $query->orWhere(
$filter['field'],
$filter['operator'],
$filter['input']
);
}
}
}
/* END HAIR COLOR */
/* EYECOLOR */
$eye = 0;
foreach($eye_queries as $filter) {
if($eye == 0) {
if(!empty($request->input($filter['input']))) {
$query = $query->where(
$filter['field'],
$filter['operator'],
$filter['input']
);
}
}
if(!empty($request->input($filter['input']))) {
$eye++;
}
}
if ($eye >= 2) {
foreach($eye_queries as $filter){
if(!empty(request()->input($filter['input']))){
$query = $query->orWhere(
$filter['field'],
$filter['operator'],
$filter['input']
);
}
}
}
/* END EYE COLOR */
$usersall = $query->whereHave_pics('1')->get();
return view('search', compact('usersall'));
}
わかりました。どこのクロージャのソースがありますか?簡単なGoogle検索では何も出てこなかった – Patrick
投稿内のパラメータグループリンクをクリックしてください。 – Paras
さて、私はそれを見ましたが、別のものだと思っていました。 – Patrick