3.6. 前台类目菜单
前台类目菜单
上一节我们完成了商品列表页面按类目筛选的功能,但是只能手动传入 category_id
参数才能访问到,这对普通用户是很不友好的。
本章节我们将要在顶部导航栏添加一个类目菜单,与 Laravel-China 的分类菜单类似:
1. 构建类目树
由于我们是一个无限级的商品类目,当用户鼠标移动到父类目时还需弹出对应的子类目,因此我们需要先将所有的类目从数据库中取出,并按照父子关系构建成树状。
由于这是一个比较通用的功能,因此我们把这个方法封装到 CategoryService
类中,首先创建这个类文件:
$ touch app/Services/CategoryService.php
app/Services/CategoryService.php
<?php
namespace App\Services;
use App\Models\Category;
class CategoryService
{
// 这是一个递归方法
// $parentId 参数代表要获取子类目的父类目 ID,null 代表获...