Laravel 5.2 即将发布,新版本将会有哪些新特性?

laravel 5.2 有哪些新特性

Laravel 5.2 的开发正在紧锣密鼓的进行中,到目前为止一些新的特性已经浮出水面。下面就让我们一起来看看这个即将发布的新版本有哪些新特性(截至目前公布的)。

隐式模型绑定

隐式模型绑定是一项新特性,指的是将模型自动绑定到路由,下面是示例代码:

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

该场景背后的原理是调用Post::findOrFail($post)并且将结果注入到$post变量。对Laravel老手来说,这和之前的路由模型绑定很类似,但是新版本中移除了手动绑定操作,从而让实现更加简单。

调度任务追加输出

新版本中Laravel Scheduler可以从任务中追加输出到文件:

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

在之前的Laravel版本中,Laravel带了一个sendOutputTo选项写入当前结果而不是追加。

表单数组验证

假设你有一个表单,其中包含了一个数组输入字段,就像这样:

<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中添加验证规则需要循环遍历每个输入项然后单独为每个添加规则,现在我们不需要那么做了,只需按照下面这样处理即可:

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

集合通配符

使用集合的时候如果想要拉出指定数据,可以通过传入通配符*实现:

$posts->pluck(‘posts.*.title’);

这样就可以获取所有文章的标题。

数据库Session驱动

数据库session驱动现在包含了user_idip_address,因此你可以轻松清除指定用户的所有会话。

MySQL JSON 字段类型

MySQL 5.7.8 添加本地 JSON 数据类型支持, Laravel 5.2 中也将支持这一类型。

更多新特性

随着Laravel 5.2的发布日期一天天临近,更多新特性也会被一一公布出来,关注Laravel学院,我们会在第一时间跟进Laravel 5.2的最新动态。

本文译自:https://laravel-news.com/2015/11/laravel-5-2-a-look-at-whats-coming/

学院君

学院君 has written 548 articles

资深PHP工程师,Laravel学院院长