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