Laravel v5.3.19 正式发布,包含一些小的改动和优化

laravel-5-3-19
Laravel 最近发布了 5.3.19 版本,该版本包含一些小的改动和代码优化,以及对中间件排序进行了重写,以便调用带参数的中间件可以正常工作。

PHP Artisan make:model

添加到该版本的一个新功能是在通过Artisan创建新模型时指定对资源控制器的创建。也就是说,你可以通过一个-c或者--controller选项到make:model命令来指定要创建对应的资源控制器:

php artisan make:model Post --controller

Laravel 图片尺寸验证

Laravel 5.3 的一个新特性是通过验证器验证图片以确保它们满足特定尺寸,这可以通过一个字符串格式的规则来设置:

'avatar' => 'dimensions:min_width=100,min_height=200,ratio=3/2'

在 Laravel 5.3.19 中,这可以通过一个类似唯一存在验证规则的语法来指定:

Rule::dimensions()->minWidth(100)->minHeight(100)->ratio(3/2)

Laravel验证规则 in 和 not_in

innot_in 验证规则现在可以接收数组输入:

// Previous
in:php,laravel,...
// New
Rule::in(['php','laravel'])

not_in 也是一样:

// Previous
not_in:php,laravel,...
// New
Rule::notIn(['php', 'laravel'])

这两种风格都是有效的,新的基于对象风格的规则最终会被解析成老的方式,所以你可以在应用中随便使用两者之一即可。

验证之后的钩子

现在你的控制器中可以使用一个新方法 withValidator ,这样你就可以在验证之后轻松调用任意钩子:

protected function withValidator($validator)
{
    $validator->after(function($validator) {
        if ($this->somethingElseIsInvalid()) {
            $validator->errors()->add('field', 'Something is wrong with this field!');
        }
    });
}

在此之前你不得不在使用钩子之前手动设置 $validator = Validator::make() 才能使用 ValidatesRequests trait。

升级Laravel

要获取最新版本的Laravel,需要运行composer update,你也可以在changelog这里查看完整的修改列表。

学院君

学院君 has written 548 articles

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