パラメータがテーブルから動的に取得されるフィルタを持つ電子商取引アプリケーションです。複数の選択肢と複数パラメータのフィルタから複雑なクエリを生成する際の問題
"フィルタ"テーブルは次のようになります。
id |グループ|ラベル|値
---- + ---------- + ------------------- + ----------- -----
12 |締め切り| 1〜3日間| 1 AND 3
14 |予算|すべて| 0
15 |予算| 1000未満| 1,1000
16 |予算| 1000〜10000 | 1000,10000
22 |ロケーション|すべて| 0
23 |ロケーション|ニューヨーク| Newyork
24 |ロケーション|カリフォルニア州|カリフォルニア
25 |ロケーション|アラバマ州|アラバマ
多くの間でパラメータの1つは次のとおりです。 "予算" とチェックボックスのオプションは次のとおりです。
すべて
1000年99999
100000から9999
10000から999999
へユーザーはここで複数のオプションを確認できます。
私は、このフィルタから動的に検索クエリを構築しようとしている:(ここhttps://m.dotdev.co/writing-advanced-eloquent-search-query-filters-de8b6c2598dbを参照してください)
フィルタ用のビューファイル:
@foreach ($groups as $group => $filters)
<div class="panel panel-default">
<b>{{ $group }}</b>
@foreach($filters as $filter)
<div id="collapseOne1" class="panel-collapse collapse in">
<div class="panel-body">
<div class="checkbox">
<label><input class="
<?php if ($filter->value == '0') { ?>
{{ $filter->group }}
<?php } else { ?>
{{ $filter->group."Child" }}
<?php }?>" type="checkbox" name="{{ $filter->group }}" value="{{ $filter->value }}">{{ $filter->label }}</label>
</div>
</div>
</div>
@endforeach
</div>
@endforeach
コントローラがあります。
$requests = $requests->newQuery();
if ($request->has('budget')) {
foreach (explode(',',$request->budget) as $budget) {
$min = 0;
$max = 1;
if($budget < $min){
$min = $budget;
}
if($budget > $max){
$max = $budget;
}
}
$requests->whereBetween('budget',[$min, $max]);
}
$requests = $requests->paginate(5);
...
上記のコードは、常にmin = 0を設定するので動作していないようです。誰かが、動的に生成された複数選択フィルタララベルで?事前に
おかげで、
問題は、ユーザーが複数のチェックボックスを同時に選択できることです。たとえば、私は1000から10000と10000から100000のような2つのオプションを選択することができます。ここでは、最小値は1000であり、最大値は100000です。しかし、クエリの問題は、選択します。はい、そうです、それはコーディングの問題です。私はララベルを初めて勉強しているので、私はそれを見つけるのが難しいので、ここでいくつかの助けを求めています。どのオンライン資料でも助けていただければ幸いです。再度、感謝します。 – chuck