在网上商城上,我们经常可以看到多级分类、子分类、甚至无限极分类。本文将向你展示如何优雅的通过 Laravel Eloquent 将其实现。
我们会创建一个微型项目来展示儿童商店的分类,总共有 5 级,如下:
数据库迁移
简单的数据表结构:
Schema::create('categories', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->unsignedBigInteger('category_id')->nullable();
$table->foreign('category_id')->references('id')->on('categories');
$table->timestamps();
});
只有一个 name 字段, 关联到其自身。所以,大部分父级分类 category_id = NULL,每一个子分类都有一个 parent_id
数据表数据如下:
Eloquent 模型和关联关系
首先ÿ