如何使用Laravel Eloquent来开发无限极分类

admin3年前PHP教程56
概述

我们会创建一个微型项目来展示儿童商店的分类,总共有 5 级,如下:

数据库迁移

简单的数据表结构:

只有一个 name 字段, 关联到其自身。所以,大部分父级分类 category_id = null,每一个子分类都有一个 parent_id

数据表数据如下:

eloquent 模型和关联关系

首先,在 app/category.php 创建一个简单的 hasmany() 方法, 分类可能拥有其自分类:

好戏开场 本文最妙 “计策”。你知道可以向这样描述 递归 关系吗?如下:

因此,如果调用 category::with(‘categories'),将得到下级 “子分类”,但是通过 category::with(‘childrencategories') 将能帮你实现无限极。

路由和控制器方法

现在,让我们尝试显示所有类别和子类别,如上例所示。

在 routes/web.php,我们添加以下内容:

app/http/categorycontroller.php 如下所示:

我们仅加载父类别,将子类别作为关系。简单吧?

视图和递归子视图

最后,渲染到页面。 在 resources/views/categories.blade.php 文件:

我们先遍历了最顶级的父类别,然后遍历出父类的子类别,然后使用 @include 加载子类别的子类别......

最好的部分是 resources/views/admin/child_category.blade.php 将使用递归加载自身。看代码:

在 child_category.blade.php 内部,我们包含了 @include(‘child_category'),因此只要当前子类别中有类别,模板就会递归地加载子类别。

就是这样!我们拥有无限级别的子类别 - 无论是在数据库还是关联关系或是视图中

以上就是如何使用laravel eloquent来开发无限极分类的详细内容,更多关于使用laravel eloquent来开发无限极分类的资料请关注其它相关文章!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

浅谈Swoole并发编程的魅力

目录场景介绍并发编程编码实现并发难题数据同步问题思维转变场景介绍假设我们要做一个石头剪刀布的Web游戏,3个玩家同时提交竞猜后显示胜者。在传统串行化Web编程中,我们一般思路是这样:设置form表单,...

高防服务器防火墙的基本特性?国内高防服务器适合哪些行业购买?

我们在选择高防服务器租用时会了解到,大多数都是针对DDoS/CC等流量型攻击,通过防火墙等技术对流量型攻击进行削弱的,但是对于防火墙的基本特性,我们又了解多少呢?(一)内部网络和外部网络之间的所有网络...

游戏服务器租用的好处和缺点?美国电信100G高防服务器租用有哪些优势?

游戏服务器租用的好处和缺点?游戏服务器租用对于游戏玩家来说是非常重要的,因为有了游戏服务器我们才能玩上自己喜爱的网络游戏。那么什么是游戏服务器呢?其实很简单就是提供游戏的平台。比如:魔兽世界、剑灵、地...

如何在thinkphp中使用windows计划任务定时执行php文件

实现思路如下:通过win的“任务”功能来定时执行一个bat文件,bat文件会调用php.exe文件,php.exe可以传递参数指定执行哪个类和方法方法如下:一,thinkphp...

普通的高防服务器如何增加防护?100G国内高防服务器如何防御DOSS攻击?

互联网的浪潮带动了服务器租赁市场的快速发展,许多的客户为了免往不必要的麻烦,都会选择访问距离相对较近、速度快而且不用备案的高防服务器。然而越来越大的市场也滋生了不少问题,比如日益严峻的网络流量攻击现象...

提高海外多ip服务器速度的方法有哪些

提高海外多ip服务器速度的方法:1、选择直连网络的骨干点,减少在路由节点上所消耗的时间,提高服务器速度;2、选择采用大带宽的海外服务器,能提高服务器速度;3、采用BGP智能线路,能智能选择最优路线,保...