前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Laravel 6.7.0 版本发布,支持不加载关联关系

Laravel 6.7.0 版本发布,支持不加载关联关系

作者头像
学院君
发布2019-12-18 11:21:51
1.5K0
发布2019-12-18 11:21:51
举报
文章被收录于专栏:学院君的专栏学院君的专栏

Laravel 开发团队本周发布了 v6.7.0 版本,新增了一些新特性,以及对之前版本问题的修复。

1、新增特性一览

下面我们对其中一些比较值得关注的代码调整做简单的介绍:

Eloquent 模型类中引入的 HasTimestamps Trait 新增了两个方法用来返回完整的创建和更新时间字段名(包含表名):

代码语言:javascript
复制
代码语言:javascript
复制
$model->getQualifiedCreatedAtColumn();
// 例如 users.created_at

$model->getQualifiedUpdatedAtColumn();
// 例如 users.updated_at

异常处理器中可以使用新的 exceptionContext() 方法来提供额外的自定义日志上下文:

代码语言:javascript
复制
代码语言:javascript
复制
// App/Exceptions/Handler.php
protected function exceptionContext(Exception $e)
{
    if ($e instanceof CustomException) {
        return ['custom_context' => $e->getCustomProperty()];
    }

    return parent::exceptionContext($e);
}

邮件传输失败时,现在会抛出错误来取代之前的静默失败,此更新无需调整任何上层业务代码:

此外,一个比较重要的更新是 Eloquent 模型类现在还新增了 withoutRelations() 方法,用来支持在队列任务中不加载关联关系,从而提高性能。我们可以在队列任务的构造函数中调用该方法:

代码语言:javascript
复制
代码语言:javascript
复制
/**
 * Create a new job instance.
 *
 * @param  \App\Podcast  $podcast
 * @return void
 */
public function __construct(Podcast $podcast)
{
    $this->podcast = $podcast->withoutRelations();
}

具体细节可以参考学院君网站上 Laravel 6 队列文档的最新版本。

资源集合现在可以通过调用 preserveQueryParameters() 方法在 API 资源分页时保留查询字符串:

代码语言:javascript
复制
return MyResourceCollection::make($repository->paginate())->preserveQueryParameters();

2、详细更新日志

新增方法

  • HasTimestamps Trait中新增 getQualifiedCreatedAtColumn()getQualifiedUpdatedAtColumn() 方法(#30792)
  • Exceptions\Handler 中新增 exceptionContext() 方法支持(#30780)
  • 邮件传输底层出错时抛出错误(#30799, 4320b82)
  • HasRelationships Trait 中新增 withoutRelations()unsetRelations() 方法(#30802)
  • 新增 ResourceCollection::preserveQueryParameters() 方法以便在 API 资源分页时保留查询字符串(#30745, e92a708)
修复问题
  • 修复基于字符串的数据库验证规则中的显式模型问题(#30790)
  • 修复 Routing\RedirectController() 问题(#30783)
代码调整
  • PhpRedisConnection 重连机制调整(#30778)
  • 优化 ShouldBroadcastNow 性能(#30797, 5b3cc97)

声明:以上内容整理翻译自 Laravel News。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 极客书房 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、新增特性一览
    • 修复问题
      • 代码调整
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档