Laravel 5.2 发布!

发布于 作者

Laravel 5.2 现已正式发布,供所有人使用。 此版本提供了多个身份验证驱动程序支持、隐式模型绑定、简化的 Eloquent 全局作用域、可选身份验证脚手架、中间件组、速率限制中间件、数组验证改进等。

让我们深入了解一些新功能

身份验证脚手架

回归的是身份验证脚手架,它将自动创建用于身份验证、注册和密码重置的基本视图文件集。 可以通过以下方式运行它

php artisan make:auth

隐式模型绑定

隐式模型绑定是自动将模型绑定到路由的新功能。 以下是代码中的示例

Route::get('/api/posts/{post}', function(Post $post) {
return $post;
});

它的作用是在幕后调用 Post::findOrFail($post) 并将其注入到 $post 变量中。 对于经验丰富的 Laravel 开发人员来说,这类似于现有的 路由模型绑定,但现在无需手动绑定。

追加来自计划任务的输出

Laravel 计划程序 现在能够将任务的输出追加到文件。

$schedule->command('emails:send')
->hourly()
->appendOutputTo($filePath);

以前,Laravel 包含一个 sendOutputTo 选项,该选项将写入当前结果,但不会追加。

Laravel 5.2 表单数组验证

假设你有一个带有像这样的输入字段数组的表单

<p>
<input type="text" name="person[1][id]">
<input type="text" name="person[1][name]">
</p>
<p>
<input type="text" name="person[2][id]">
<input type="text" name="person[2][name]">
</p>

在 Laravel 5.1 中,要添加验证规则,需要循环遍历并分别添加规则。 不用这样做,它被“Laravelized”成这样

$v = Validator::make($request->all(), [
'person.*.id' => 'exists:users.id',
'person.*.name' => 'required:string',
]);

集合通配符

在使用集合并想要提取数据时,现在可以传递 * 作为通配符

$posts->pluck('posts.*.title');

这将返回所有帖子的所有标题。

数据库会话驱动程序

数据库会话驱动程序现在包括 user_idip_address,因此可以轻松清除给定用户的全部会话。

中间件组

中间件组允许你将多个路由中间件分组到一个方便的键下,允许你一次将多个中间件分配到一个路由。 例如,这在同一个应用程序中构建 Web UI 和 API 时非常有用。 你可以将会话和 CSRF 路由分组到一个 web 组中,并且可能将速率限制器放在 api 组中。

速率限制

框架现在包含一个新的速率限制中间件,允许你轻松限制给定 IP 地址在指定分钟数内可以向路由发出的请求数。 例如,要将路由限制为每个 IP 地址每分钟 60 个请求,你可以执行以下操作

Route::get('/api/users', ['middleware' => 'throttle:60,1', function () {
//
}]);

Eloquent 全局作用域

在以前版本的 Laravel 中,全局 Eloquent 作用域实现起来很复杂且容易出错; 然而,在 Laravel 5.2 中,全局查询作用域只需要你实现一个简单的方法:apply。

有关编写全局作用域的更多信息,请查看完整的 Eloquent 文档

Eric L. Barnes photo

Eric 是 Laravel 新闻的创建者,自 2012 年以来一直在报道 Laravel。

Cube

Laravel 新闻通讯

加入 40k+ 其他开发人员,永不错过新的提示、教程等。

Laravel Forge logo

Laravel Forge

轻松创建和管理服务器,并在几秒钟内部署 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。 使用 AI、自动补全和本地和生产环境的即时反馈进行调试。

Tinkerwell
No Compromises logo

绝不妥协

Joel 和 Aaron,来自“绝不妥协”播客的两名经验丰富的开发人员,现在可以为你的 Laravel 项目聘用。 ⬧ 固定费率 7500 美元/月。 ⬧ 没有冗长的销售流程。 ⬧ 没有合同。 ⬧ 100% 退款保证。

绝不妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,确保你的 Web 应用程序取得成功。

Kirschbaum
Shift logo

Shift

运行旧版本的 Laravel? 立即自动执行 Laravel 升级和代码现代化,使你的应用程序保持新鲜。

Shift
Bacancy logo

Bacancy

让经验丰富的 Laravel 开发人员(拥有 4-6 年经验)以每月仅 2500 美元的价格为你的项目注入活力。 获得 160 小时的专业知识和 15 天无风险试用。 立即安排电话会议!

Bacancy
Lucky Media logo

Lucky Media

立即获得 Lucky - Laravel 开发的理想之选,拥有十多年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar:Laravel 电子商务

Laravel 的电子商务。 一个开源包,将现代无头电子商务功能的强大功能带到 Laravel。

Lunar:Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 工作板

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit:Laravel SaaS 启动套件

SaaSykit 是一个 Laravel SaaS 启动套件,它包含运行现代 SaaS 所需的所有功能。 支付、漂亮的结账、管理面板、用户仪表板、身份验证、现成的组件、统计数据、博客、文档等等。

SaaSykit:Laravel SaaS 启动套件
Rector logo

Rector

你的无缝 Laravel 升级合作伙伴,降低成本,加速创新,为成功企业提供支持

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成增强你的 PHP 应用程序,使开发人员能够轻松高效地构建应用程序。 支持事务、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。 了解 MongoDB 如何利用其灵活的现代数据库来改变你的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的零依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

将 Swagger UI 添加到你的 Laravel 应用程序

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel 提示构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 包向你的 Laravel 应用程序添加评论

阅读文章