Laravel 5.3 新功能一览
发布时间 作者 Eric L. Barnes
Laravel 5.3 现已发布,所有人都可以获取。以下是这些新功能的快速概述
Laravel Scout
Laravel Scout 是一个基于驱动程序的 Eloquent 全文搜索功能。它默认支持 Algolia,而且由于它是基于驱动程序的,因此社区中的任何人都可以创建他们自己的与其他全文搜索系统的集成。
Scout 通过在您现有的模型中实现“Searchable”特质来工作。然后,只需将数据与搜索服务同步,如下所示
php artisan scout:import App\\Post
之后,您可以使用以下方法搜索您的模型
Post::search('Alice')->get();
您甚至可以分页
Post::search('Alice')->paginate()
它甚至包括简单的 where 子句
Post::search(‘Alice’)—>where('acount_id', '>', 1)->paginate()
Laravel Mailable
Laravel Mailable 是一个用于以表达方式发送电子邮件的新 Mail 类
Mail::to('[email protected]')->send(new OrderComplete);
当然,您也可以使用所有其他邮件功能
Mail::to('[email protected]')->cc('[email protected]')->queue(new OrderComplete);
Laravel 通知
Laravel 通知 允许您通过 Slack、短信或电子邮件等服务快速更新。
通知附带一个响应式事务性电子邮件模板。在您的通知类中,发送消息所需的所有代码如下
$this->line('Thank you for joining') ->action('Button Text', 'http://url.com') ->line('If you have any questions please hit reply') ->success()
或者,如果它是一个错误
$this->line('Sorry we had a problem with your order') ->action('Button Text', 'http://url.com') ->error()
Laravel Passport
Laravel Passport 是一个可选的软件包,它是一个开箱即用的完整 oAuth 2 服务器。
您可以设置范围、用于令牌生成、撤销令牌等的 Vue.js 组件。
回滚单个迁移
迁移中添加的新功能,允许您 仅回滚单个迁移,而不是整个批次
php artisan migrate:rollback --step=1
Blade foreach 循环
在 Blade foreach 循环中,现在您可以访问一个 $loop
变量。这将允许您执行以下操作
@if($loop->first) Do something on the first iteration.@endif @if($loop->last) Do something on the last iteration.@endif
Eloquent 集合被干净地序列化并由排队的作业重新提取
在 5.3 中,Eloquent 集合被干净地序列化并由排队的作业重新提取,就像单个模型一样! pic.twitter.com/IZ5t118WNT
— Laravel (@laravelphp) 2016 年 5 月 31 日
Jacob Bennett 告诉我们 为什么这很重要。
队列控制台输出更改为显示实际类名
清理 Laravel 队列控制台输出,使其显示实际类名,而不是每个作业的“CallQueuedHandler”。 ???? pic.twitter.com/iYKAhTHaeU
— Taylor Otwell (@taylorotwell) 2016 年 6 月 1 日
能够自定义简单分页
今天在 Laravel 5.3 开发中。通过视图恢复简单的分页自定义功能。 ???? pic.twitter.com/Ir28svVGCA
— Taylor Otwell (@taylorotwell) 2016 年 6 月 1 日
First Or Create
现在 firstOrCreate 允许传递额外的值。例如
return User::firstOrCreate(['github_id', $githubUser->id], ['avatar' => $githubUser->avatar]);
查询构建器现在将返回一个集合
查询构建器以前总是返回数组,现在它将 返回一个集合。无论您如何提取数据,这将保持结果一致
$collection = DB::table('posts')->get();
多个迁移路径
现在,您可以从服务提供者加载自己的迁移路径
$this->loadMigrationsFrom('path/to/migrations/folder')
有关更多信息,Alex Bowers 提供了一个概述。
Laravel Echo
Laravel Echo 是一个旨在改进当前事件广播系统的新功能。有关更多信息,请参见 Laracasts 视频。
新的缓存助手
cache()
全局助手可以执行三个主要功能:获取、放置或返回支持服务的实例。有关更多详细信息,请查看 Matt Stauffer 的 撰写内容。
该列表仅涵盖了一些重大更改,但 Laravel 5.3 预计将是一个不错的版本,并且将在 Laracon 正式宣布。请务必加入 Laravel 新闻稿,以便在 5.3 正式发布时立即收到通知。