我正在尝试创建一个多重过滤函数来过滤我的表。我有一个名为 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 关注
- 84 浏览
添加回答
举报
0/150
提交
取消