Laravel 5.8.3发布
Laravel团队昨天发布了Laravel5.8.3,countBy() 为Laravel框架类添加了一个 收集方法和一些受保护的方法。
首先,该 Collection::countBy 方法通过谓词对集合中的项数进行计数。默认情况下,该方法对给定值的每次出现进行计数:
collect([ 1, 2, 2, 2, 3 ])->countBy(); // == collect([ 1 => 1, 2 => 3, 3 => 1 ])
该 countBy 方法还接受谓词参数:
collect([ 'alice@gmail.com', 'bob@yahoo.fr', 'carlos@gmail.com' ])->countBy(function ($email) { return substr(strrchr($email, "@"), 1); }); // == collect([ 'gmail.com' => 2, 'yahoo.fr' => 1 ])
接下来, EloquentUserProvider 用户提供程序类具有新的受保护 modelQuery 方法。PR作者的用例正在扩展基于口才的用户提供程序,而无需实现该 UserProvider 接口。例如:
where('role', 'admin'); } }
接下来,saveSession 在StartSession 中间件中添加了一种受保护的 方法 ,允许应用程序扩展中间件保存逻辑,而不会覆盖整个 handle()方法。
万一您重写此方法并需要访问请求,该 saveSession() 方法还接受一个 $request参数。
此版本中的最后一个新增功能是允许 Model::belongsToMany 使用Model/Pivot类名称作为第二个参数来接受非硬编码的数据透视表名称:
return $this->belongsToMany(Profile::class, CustomerProfile::class);
您可以在下面看到所有修补程序列表,以及GitHub上5.8.2和5.8.3之间的全部差异。可以在GitHub5.8changelog中获得Laravel5.7的完整发行说明:
v5.8.3
添加
新增 Collection::countBy (#27770)
添加了受保护的 (#27734,9bb7685)EloquentUserProvider::newModelQuery()
添加了受保护的 方法(#27771,76c7126)StartSession::saveSession()
允许 belongsToMany 将 Model/Pivot 类名作为第二个参数(#27774)
固定的
固定环境变量解析(#27706)
修复了在使用时猜测的策略名称 Gate::forUser(#27708)
固定 via 为 string 在 Notification (#27710)
固定 StartSession 中间件(499e4fe)
修复 stack 了与level (#27726,bc884bb)相关的通道的错误
修复了 email 对非字符串值的验证(#27735)
已变更
MessageBag 在检查密钥是否存在之前检查是否 为空 MessageBag (#27719)