Laravel 5.2 发布!
发布于 作者 Eric L. Barnes
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_id
和 ip_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 文档。