laravel使用教程(Laravel如何实现无限极分类)

2026-05-28 06:30:02 :0

laravel使用教程(Laravel如何实现无限极分类)

这篇文章给大家聊聊关于laravel使用教程,以及Laravel如何实现无限极分类对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

Laravel如何实现无限极分类





下面由Laravel教程栏目给大家介绍Laravel如何实现无限极分类,希望对需要的朋友有所帮助!
最近开发商品功能,在尝试递归和引用方式后,蓦然回首,突然发现laravel框架有更简单高效的实现方式,无限极分类最佳实践,open code与大家共享!感兴趣的Mark一下,谢谢~
表结构如下:CREATE TABLE `goods_category` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT ’主键id’,
`name` varchar(500) DEFAULT ’’ COMMENT ’分类名称’,
`pid` int(5) unsigned DEFAULT ’0’ COMMENT ’父级id’,
`level` tinyint(3) unsigned DEFAULT ’1’ COMMENT ’分类等级’,
`status` tinyint(3) unsigned DEFAULT ’0’ COMMENT ’分类状态:0-禁用,1-正常’,
`created_at` timestamp NULL DEFAULT NULL COMMENT ’创建时间’,
`updated_at` timestamp NULL DEFAULT NULL COMMENT ’更新时间’,
PRIMARY KEY (`id`) USING BTREE,
KEY `status` (`status`)) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8mb4 COMMENT=’商品分类表’;数据存储格式:
业务代码: // 模型文件
public function children() {
return $this-》hasMany(get_class($this), ’pid’ ,’id’);
}
public function allChildren() {
return $this-》children()-》with( ’allChildren’ );
}// 控制器$list = GoodsCategory::with(’allChildren’)-》first();dd($list);处理后数据:
至此,laravel框架无限极分类实现完毕,相比递归和引用实现无限极分类的两种方式,是不是简单高效很多呢,关于更多laravel特性,欢迎评论区留言探讨。

如何用laravel生成sitemap


之前用yaf和yii框架写过sitemap:思路是根据需求生成.xml文件保存到项目指定目录中。
用laravel换一个思路,生成.xml动态链接,而不是保存文件到目录
1.配置routes,生成xml访问链接
2.根据项目逻辑生成sitemap
上代码:
配置routes
//sitemap
Route::get(’/sitemap/m/{type}.xml’, ’SitemapController@siteMap’);核心代码
《?php
namespace AppHttpControllersM;
use AppHttpControllersBaseController;
use AppModelBbsArticle;
use AppModelBbsAsk;
use AppModelBbsThread;
use AppModelMainVideo;
use AppModelGarageSeriesInfoModel;
//todo 补充其他模块
use CarbonCarbon;
use IlluminateSupportFacadesCache;
class SitemapController extends BaseController
{
//todo 写一个汇总文件
public function siteMap($type)
{
$cacheKey = "site-" . $type;
//2小时缓存 保证加载速度
if (Cache::has($cacheKey)) {
$siteMap = Cache::get($cacheKey);
} else {
$siteMap = $this-》buildSiteMap($type);
Cache::add($cacheKey, $siteMap, 120);
}
return response($siteMap)
-》header(’Content-type’, ’text/xml’);
}
/**
* Build the Site Map
*/
protected function buildSiteMap($type)
{
$sitemapInfo = ;
switch ($type) {
case ’video’:
$sitemapInfo = $this-》getVideoInfo();
break;
case ’article’:
$sitemapInfo = $this-》getArticleInfo();
break;
case ’bbs’:
$sitemapInfo = $this-》getBbsInfo();
break;
case ’ask’:
$sitemapInfo = $this-》getAskInfo();
break;
case ’series’:
$sitemapInfo = $this-》getSeriesInfo();//车型库
break;
}
$lastmod = $sitemapInfo;
$xml = ;
$xml = ’《?xml version="1.0" encoding="UTF-8"?’ . ’》’;
***隐藏网址***
$xml = ’ 《url》’;
***隐藏网址***
$xml = " 《lastmod》$lastmod《/lastmod》";
$xml = ’ 《changefreq》daily《/changefreq》’;
$xml = ’ 《priority》0.8《/priority》’;
$xml = ’ 《/url》’;
foreach ($sitemapInfo as $sitemap) {
$xml = ’ 《url》’;
$xml}《/loc》";
$xml = " 《mobile:mobile type="mobile"/》";
$xml}《/lastmod》";
$xml = " 《/url》";
}
$xml = ’《/urlset》’;
return join("
", $xml);
}
/**
* Return all the posts as $url =》 $date
*/
protected function getVideoInfo()
{
$videos = Video::where(’pub_time’, ’《=’, Carbon::now())
-》where(’published’, 2)
-》where(’is_del’, 0)
-》orderBy(’id’, ’desc’)
-》pluck(’pub_time’, ’id’)
-》all();
$res = $article = ;
foreach ($videos as $id =》 $pub_time) {
$article = $id;
$article = substr($pub_time, 0, 10);
***隐藏网址***
$res = $article;
}
return $res;
}
protected function getArticleInfo()
{
$articles = Article::where(’pub_time’, ’《=’, Carbon::now())
-》where(’published’, 2)
-》where(’is_del’, 0)
-》orderBy(’id’, ’desc’)
-》pluck(’pub_time’, ’id’)
-》take(5000)
-》all();
$res = $article = ;
foreach ($articles as $id =》 $pub_time) {
$article = $id;
$article = substr($pub_time, 0, 10);
***隐藏网址***
$res = $article;
}
return $res;
}
protected function getBbsInfo()
{
$articles = Thread::where(’visible’, 1)
-》where(’is_del’, 0)
-》orderBy(’id’, ’desc’)
-》pluck(’dateline’, ’id’)
-》take(10000)
-》all();
$res = $article = ;
foreach ($articles as $id =》 $pub_time) {
$article = $id;
$article = substr($pub_time, 0, 10);
***隐藏网址***
$res = $article;
}
return $res;
}
protected function getAskInfo()
{
$articles = Ask::where(’state’, 1)
-》orderBy(’id’, ’desc’)
-》pluck(’dateline’, ’id’)
-》take(10000)
-》all();
$res = $article = ;
foreach ($articles as $id =》 $pub_time) {
$article = $id;
$article = substr($pub_time, 0, 10);
***隐藏网址***
$res = $article;
}
return $res;
}
//车型库
protected function getSeriesInfo()
{
$articles = SeriesInfoModel::where(’status’, 1)
-》where(’is_stop’, 0)
-》pluck(’name’, ’id’)
-》all();
$res = $article = ;
foreach ($articles as $id =》 $pub_time) {
$article = $id;
$article = date(’Y-m-d’, time());
***隐藏网址***
$res = $article;
}
return $res;
}
}更多laravel框架相关技术文章,请访问laravel教程栏目!

OK,关于laravel使用教程和Laravel如何实现无限极分类的内容到此结束了,希望对大家有所帮助。

laravel使用教程(Laravel如何实现无限极分类)

本文编辑:admin

更多文章:


unlikely(not likely和unlikely含义一样吗)

unlikely(not likely和unlikely含义一样吗)

大家好,如果您还对unlikely不太了解,没有关系,今天就由本站为大家分享unlikely的知识,包括not likely和unlikely含义一样吗的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录not lik

2025年10月23日 20:45

kindeditor 在dialog中居中(在Iframe中使用jquery ui dialog 怎么使弹出窗口居于浏览器中间)

kindeditor 在dialog中居中(在Iframe中使用jquery ui dialog 怎么使弹出窗口居于浏览器中间)

本篇文章给大家谈谈kindeditor 在dialog中居中,以及在Iframe中使用jquery ui dialog 怎么使弹出窗口居于浏览器中间对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有

2025年7月27日 23:15

网络security(什么是网络安全等级保护)

网络security(什么是网络安全等级保护)

本篇文章给大家谈谈网络security,以及什么是网络安全等级保护对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录什么是网络安全等级保护网络

2026年8月29日 04:15

ASP.NET MVC 4框架揭秘:Controller类型的缓存?RxCache缓存框架

ASP.NET MVC 4框架揭秘:Controller类型的缓存?RxCache缓存框架

本篇文章给大家谈谈缓存框架,以及ASP.NET MVC 4框架揭秘:Controller类型的缓存对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录ASP.NET MVC 4框架揭秘:Controller类型的缓存RxCache

2026年6月1日 06:00

java编程工具免费(请问java编写程序除了用eclipse,还可以用什么我主要是想做web前端的,有没有什么视图化的软件啊)

java编程工具免费(请问java编写程序除了用eclipse,还可以用什么我主要是想做web前端的,有没有什么视图化的软件啊)

本篇文章给大家谈谈java编程工具免费,以及请问java编写程序除了用eclipse,还可以用什么我主要是想做web前端的,有没有什么视图化的软件啊对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录请问java编写程序除了用ec

2025年8月4日 12:30

memcached性能(PHP中4个加速,缓存扩展的区别和选用建议)

memcached性能(PHP中4个加速,缓存扩展的区别和选用建议)

大家好,关于memcached性能很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于PHP中4个加速,缓存扩展的区别和选用建议的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各

2025年9月8日 08:45

2  3表示什么python(python语句:print(*[1,2,3]),是什么意思)

2 3表示什么python(python语句:print(*[1,2,3]),是什么意思)

大家好,关于2 3表示什么python很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于python语句:print(*[1,2,3]),是什么意思的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还

2026年8月14日 22:30

java下载了打不开(为什么下载了java也玩不了我的世界)

java下载了打不开(为什么下载了java也玩不了我的世界)

大家好,关于java下载了打不开很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于为什么下载了java也玩不了我的世界的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮

2026年5月17日 05:15

timeformat函数(GetTimeFormat怎么用,各个参数尤其是最后一个有点看不懂)

timeformat函数(GetTimeFormat怎么用,各个参数尤其是最后一个有点看不懂)

本篇文章给大家谈谈timeformat函数,以及GetTimeFormat怎么用,各个参数尤其是最后一个有点看不懂对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘

2025年11月13日 04:30

平面设计网页设计(网页设计和平面设计那个好就业)

平面设计网页设计(网页设计和平面设计那个好就业)

本篇文章给大家谈谈平面设计网页设计,以及网页设计和平面设计那个好就业对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录网页设计和平面设计那个好

2025年8月24日 04:15

tragic的副词(tragic的翻译)

tragic的副词(tragic的翻译)

各位老铁们,大家好,今天由我来为大家分享tragic的副词,以及tragic的翻译的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录tragic的翻译

2026年7月30日 07:30

murmure(murmure微信号是什么意思)

murmure(murmure微信号是什么意思)

“murmure”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看murmure(murmure微信号是什么意思)!本文目录murmure微信号是什么意思murmure是什么意思 《法语助手》法汉法语中murmure算拟声词吗

2026年3月28日 19:45

sqlite3规则(sqlite3数据库 运行一段时间后 命令行操作出现:Error:unsupported file format)

sqlite3规则(sqlite3数据库 运行一段时间后 命令行操作出现:Error:unsupported file format)

这篇文章给大家聊聊关于sqlite3规则,以及sqlite3数据库 运行一段时间后 命令行操作出现:Error:unsupported file format对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录sqlite3数据库

2025年10月25日 22:45

注销cancelled(cancel翻译成中文)

注销cancelled(cancel翻译成中文)

其实注销cancelled的问题并不复杂,但是又很多的朋友都不太了解cancel翻译成中文,因此呢,今天小编就来为大家分享注销cancelled的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录cancel翻译成中

2025年10月31日 01:00

lsp论坛源码(cad中添加LSP软件,如何使用)

lsp论坛源码(cad中添加LSP软件,如何使用)

其实lsp论坛源码的问题并不复杂,但是又很多的朋友都不太了解cad中添加LSP软件,如何使用,因此呢,今天小编就来为大家分享lsp论坛源码的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录cad中添加LSP软件,如

2026年3月8日 00:45

如何设置excel下拉框?如何设置excel下拉框选项

如何设置excel下拉框?如何设置excel下拉框选项

大家好,如果您还对设置下拉框不太了解,没有关系,今天就由本站为大家分享设置下拉框的知识,包括如何设置excel下拉框的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录如何设置excel下拉框如何设置excel下拉框选

2026年1月19日 00:30

计算机编程有哪几种(计算机编程分为哪几类)

计算机编程有哪几种(计算机编程分为哪几类)

各位老铁们,大家好,今天由我来为大家分享计算机编程有哪几种,以及计算机编程分为哪几类的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录计算机编程分为哪

2025年11月13日 05:15

dialogue英文意思(dialogue是什么意思)

dialogue英文意思(dialogue是什么意思)

大家好,dialogue英文意思相信很多的网友都不是很明白,包括dialogue是什么意思也是一样,不过没有关系,接下来就来为大家分享关于dialogue英文意思和dialogue是什么意思的一些知识点,大家可以关注收藏,免得下次来找不到哦

2025年10月23日 14:30

extensional mentality的意思(mentality是什么意思)

extensional mentality的意思(mentality是什么意思)

其实extensional mentality的意思的问题并不复杂,但是又很多的朋友都不太了解mentality是什么意思,因此呢,今天小编就来为大家分享extensional mentality的意思的一些知识,希望可以帮助到大家,下面我

2026年1月6日 13:00

汇编语言的汇编过程(如何实现汇编语言的汇编过程)

汇编语言的汇编过程(如何实现汇编语言的汇编过程)

“汇编语言的汇编过程”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看汇编语言的汇编过程(如何实现汇编语言的汇编过程)!本文目录如何实现汇编语言的汇编过程汇编程序的工作过程在计算机中,将汇编语言转换为机器语言的过程叫试简要说明

2025年11月5日 21:00

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索