3.5. 完善前台商品列表页
完善前台商品列表页
上一节我们完成了商品结构的调整,这一节我们将要实现用户在前端根据类目来筛选商品。
1. 修改控制器
首先我们需要修改 ProductsController
,使之支持按类目 ID 来筛选商品:
app/Http/Controllers/ProductsController.php
use App\Models\Category;
.
.
.
public function index(Request $request)
{
$builder = Product::query()->where('on_sale', true);
if ($search = $request->input('search', '')) {
.
.
.
}
// 如果有传入 category_id 字段,并且在数据库中有对应的类目
if ($request->input('category_id') && $category = Category::find($request->input('category_id'))) {
// 如果这是一个父类目
if ($category->is_directory) {
// 则筛选出该父类目下所有子类目的商品
$builder->whereHas('category', function ($query) use ($category) {...