我正在嘗試創建一個多重過濾函數來過濾我的表。我有一個名為 Product 的模型,它有名為 categories、colors 和 sizes 的集合。我有以下觀點: <div class="col-6"> <div class="form-group mt-3"> <label>{{ __('Categories') }}</label> <select class="form-control" id="select-categories"> <option value="0">All</option> @foreach($categories as $category) <option value="{{ $category->id }}">{{ $category->name }}</option> @endforeach </select> </div> </div> <div class="col-6"> <div class="form-group mt-3"> <label>{{ __('Colors') }}</label> <select class="form-control" id="select-colors"> <option value="0">All</option> @foreach($colors as $color) <option value="{{ $color->id }}">{{ $color->name }}</option> @endforeach </select> </div> </div> <div class="col-6"> <div class="form-group mt-3"> <label>{{ __('Sizes') }}</label> <select class="form-control" id="select-sizes"> <option value="0">All</option> @foreach($sizes as $size) <option value="{{ $size->id }}">{{ $size->name }}</option> @endforeach </select> </div> </div>然后我使用 JQuery 將 AJAX 請求發送到我的控制器,其中包含所有三個下拉列表的當前選定選項值。示例數據:類別:所有顏色:紅色尺碼:小號現在我想展示紅色和小號的產品,但類別無關緊要。我通過使用一對多關系和鏈接表來獲取集合。$product->categories$product->colors$product->sizes我不確定如何處理這個問題。
1 回答

慕容森
TA貢獻1853條經驗 獲得超18個贊
你可以做類似下面的事情:
public function index(ProductRequest $request)
{
$query = Product::where($request->validated());
return ProductResource::collection($query);
}
在您的 ProductRequest 中,您可以定義要允許的過濾器
class ProductRequest extends FormRequest
{
...
public function rules()
{
return [
'categories' => 'exists:categories,id'
....
];
}
- 1 回答
- 0 關注
- 105 瀏覽
添加回答
舉報
0/150
提交
取消