laravel通过关联模型实现无限极分类

Laravel 通过关联模型实现无限极分类

这个内容是在 Laravel-China 论坛上看到的,怕以后不好找,这里记录一下。原文地址为:https://learnku.com/articles/14068/simple-practice-of-laravel-infinite-class-classification

数据库结构

这里使用省市区结构


class CreateAreasTable extends Migration
{
    .
    .
    .

    public function up()
    {
        Schema::create('areas', function (Blueprint $table) {
            $table->unsignedInteger('id');
            $table->string('name')->comment('城市名称');
            $table->unsignedInteger('pid')->default(0)->comment('父级id');
        });
    }
    .
    .
    .
}

Area 模型增加关联方法


class Area extends Model
{
    .
    .
    .

    public function childArea() {
        return $this->hasMany(Area::class,'pid','id');
    }

    public function allChildArea()
    {
        return $this->childArea()->with('allChildArea');
    }

    .
    .
    .

}

测试

通过如下代码可以得到所有地区的无限极分类结构。更改条件可以查看某个地区及其子地区的无限极分类结构


$res = Area::with('allChildArea')->where('pid',0)->get();
return $res;


文章作者: chenggx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 chenggx !
评论
 上一篇
《但是还有书籍》观后感 《但是还有书籍》观后感
今天在 B 站上看了一部人文类的纪录片《但是还有书籍》,看过后激发了我内心深处那一丝文艺青年的骚动。(😓)所以就有了下面的内容。 第一集「书海编舟记」一群隐身于书背后的人,他们穿梭于字里行间,钻研着逗号、句号的学问,他们以敏锐的眼光探
2020-02-01 chenggx
下一篇 
ipad-mini2 降级记录 ipad-mini2 降级记录
主要记录下 Ipad mini2 ios12.3.1 降级为 ios10.3.3 的过程 最近因为想着手好好读读书,翻出了压箱底的ipad。(因为曾经手欠,把系统升级成了 ios12.3.1 导致巨卡无比,只能压箱底了)。然后用狗子搜索
2020-01-13
  目录