揭开 Laravel 隐藏的宝藏

2023年 8月 29日 48.3k 0

揭开 Laravel 隐藏的宝藏

许多使用 Laravel 的开发人员可能只触及了该框架所提供功能的皮毛。虽然文档确实涵盖了最常见的用例和明显的功能,但它并没有涵盖所有内容。

别误会我的意思,文档很好,只是您可以做的事情太多了,很难记录所有内容。因此,我们将看看 Laravel 中潜藏的一些隐藏的瑰宝。

级联视图

可用时间: v4.0.0

记录:否

视图能够像配置文件一样级联。在开发可扩展的主题系统时,级联视图非常有用。考虑以下目录结构。

/app
/views
/blog
/index.blade.php
/themes
/default
/views
/blog
/index.blade.php
/theme.blade.php

登录后复制

这个想法是,当我们 return View::make('theme::blog.index'); 时,它会首先在 themes/default/views 目录中查找,如果找不到的话找到视图,回退到 app/views

为此,我们使用 View::addNamespace 在这两个位置注册我们自己的命名空间。

View::addNamespace('theme', [
base_path().'/themes/default/views',
app_path().'/views'
]);

登录后复制

集合

可用时间: v4.0.0

记录:部分

集合是与数组交互和管理数组的好方法。集合有多种方便的方法,并实现了许多有用的接口,例如 ArrayableInterfaceIteratorAggregateJsonableInterface

假设我们正在构建一个使用平面文件进行存储的小型博客引擎。我们希望能够执行排序、过滤和分页等操作。

实现博客引擎超出了本文的范围,但假设我们有一个数组 $articles,并且该数组的每个成员都是 Article 类的实例。然后我们需要做的就是获取 Collection 的新实例并为其提供我们的文章数组。

$articles = new IlluminateSupportCollection($arrayOfArticles);

登录后复制

排序

使用集合我们可以对文章进行排序。让我们对文章进行排序,并首先显示最近更新的文章。为了本文的目的,我们假设当从文件系统加载文章时,我们将 updatedAt 属性设置为文件的上次修改时间。

$articles->sortByDesc(function ($article) {
return $article->updatedAt;
});

登录后复制

sortBysortByDesc 方法接受回调,此回调应返回一个可用于对集合进行排序的值。在我们的例子中,我们可以简单地返回文章的最后修改时间,并且集合可以根据该时间进行排序。

过滤

与排序类似,我们也可以使用集合来过滤我们的文章,就像 MySQL 中的 WHERE 子句一样。让我们根据可能已运行的搜索来过滤我们的文章。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论