【发布时间】:2020-09-03 22:22:21
【问题描述】:
早安
我正在尝试创建一个包含多个变量的过滤器,例如我想按类别过滤我的产品(例如“水果”),然后我想过滤标签(例如“销售”),因此结果我得到了所有打折的水果。我设法在 laravel 中为类别和标签编写了单独的过滤器,但如果我让它们在我的 productsController 中都处于活动状态,它们就会相互矛盾。我想我必须用 if/else 语句编写一个函数,但我不知道从哪里开始。有人可以帮我解决这个问题吗?
这些是我在 productsController 中的函数:
public function productsPerTag($id){
$tags = Tag::all();
$products = Product::with(['category','tag','photo'])->where(['tag_id','category_id'] ,'=', $id)->get();
return view('admin.products.index',compact('products','tags'));
}
public function productsPerCategory($id){
$categories = Category::all(); //om het speciefieke id op te vangen heb ik alle categories nodig
$products = Product::with(['category','tag','photo'])->where('category_id', '=', $id)->get();
return view('admin.products.index',compact('products','categories'));
}
这些是我在 web.php 中的路线。我想这也必须改变:
Route::get('admin/products/tag/{id}','AdminProductsController@productsPerTag')->name('admin.productsPerTag');
Route::get('admin/products/category/{id}','AdminProductsController@productsPerCategory')->name('admin.productsPerCategory');
【问题讨论】:
-
您的
$id是否与tag_id和category_id相同??
标签: laravel function controller routes filtering