1. 首页
  2. Laravel

Laravel 5.7.10发布

Laravel团队昨天发布了Laravel 5.7.10,其中包含一些新特性、修复和更改:
loadCount雄辩收集方法First up,是在雄辩收集上加载关系计数的能力。在此功能之前,您只能加载关系,但现在您可以调用loadCount()来获取所有关系的计数。
pull请求说明了如何使用loadCount(),并给出了以下示例:
> 2> 4return $event->eventable; 5})->groupBy(function ($eventable) { 6return get_class($eventable); 7}); 8 9$groups[Post::class]->loadCount(\”comments\”);10$groups[Comment::class]->loadCount(\”hearts\”);1112return new EventIndexResponse($events);
现在所有eventable模型都将分别具有注释或心形的计数值。loadCount功能是由Tim MacDonald添加的。提姆是我们本月早些时候推出的Laravel日志伪造包的作者。干得好,蒂姆!将模型传递给assertSoftDeleted
您可以使用assertSoftDeleted断言模型已被软删除。在Laravel 5.7.10之前,方法调用可能如下所示:
1$this->assertSoftDeleted(\”users\”, [5]);
现在,由于对assertSoftDeleted方法的更新,您可以直接传递模型,该模型将针对表的主键和主键值进行断言:
1$this->assertSoftDeleted($user);23// Same as:4$this->assertSoftDeleted(\”users\”,>
多亏德怀特Watson提供了这个不错的快捷方式!将Mock和Spy对象添加到容器中
Titas Gailius在测试中添加了更方便地将Mock和Spy实例添加到容器中的功能:
1$this->mock(Mailer::class, function ($mock) {2$mock->shouldReceive(\”send\”)->once();3});456$this->spy(Dispatcher::class, function ($mock) {7$mock->shouldReceive(\”dispatch\”)->andReturn(false);8});
这些方法是类似以下内容的语法糖:
1$this->instance(Mailer::class, Mockery::mock(Mailer::class, function ($mock) {2$mock->shouldReceive(\”send\”)->once();3}));UUID验证
AndréFilipe贡献了UUID验证方法,该方法使用正则表达式来避免illuminate/validation组件中ramsey/uuid的依赖关系。
验证规则的名称是uuid:
1$request->validate([3]);Notification Fake可以断言首选区域设置
Derek MacDonald添加了在实现HasLocalePreference的通知上断言首选通知Fake区域设置的功能界面:
1Notification::fake(); 2 => \”au\”]); 4 5// Call an artisan console command that invokes: 6Notification::send($user, new AFLTrade(\”Chad Wingard\”, \”Hawthorn\”)); 7 8Notification::assertSentTo($user, AFLTrade::class, function ($notification, $channels, $notifiable, $locale) use ($user) { 9return $notification->player === \”Chad Wingard\” &&10$notification->club === \”Hawthorn\” &&11$notifiable === $user &&12$locale === \”au\”;13});
您可以在GitHub上看到5.7.9和5.7.10之间的完整差异,以及下面5.7变更日志中的完整发行说明:v5.7.10添加了
– 添加了loadCount方法到雄辩的集合(#25997)
– 添加了对PostgreSQL 10+(#26096)中标识列的支持一个模型实例直接添加到Foundation/Testing/Concerns/InteractsWithDatabase.php(#26133,#26148)
– 中的assertSoftDeleted方法,在composer.json(#26180)
– 中添加了mock和spy方法,在Foundation/Testing/Concerns/InteractsWithContainer.php(#26171)中定义排除方法,b50f9f3)
– 将uuid验证规则添加到验证器(#26135)
– NotificationFake可以断言首选区域设置(#26205)
– 固定的whereHas和$withCount绑定,来自polymorphic relationships(#26145)
– 固定的getTable模型(#26085)
– 固定的文件系统锁定挂起在PackageManifest::build()(#26010,98b8256)
– 固定Illuminate/Http/Testing/File.php用于Symfony 4.1组件(#26080)
– 固定URL在Notifications/resources/views/email.blade.php(22ca105)
– 固定hasValidSignature方法当有人在UrlGenerator.php(#26132)中发送null签名时,
– 固定ServiceProvider中容器的自动完成,用于有人开发包(#26063)
– 固定ColumnDefinition::default(#26041)
– 在react-stubs/webpack.mix.js和vue-stubs/webpack.mix.js预设(#26119)中定义混合为常量
– 在TestResponse.php中生成assertSessionHasNoErrors打印意外错误(#26039,e6bdf8a)
– 替换了更新/删除查询中剩余出现的newQuery()到newModelQuery()。(#26158)
– 改进了BelongsToMany.php中的findOrFail()例外和HasManyThrough.php关系(#26182)
– 反转三元条件,使其更清晰(#26150)
– 简化了UrlGenerator.php(#26121)
– 简化了Support/Testing/Fakes/QueueFake.php(#26151)
– 删除了不需要的代码(#26053,#26162,#26160,#26159,#26152)
– 倾向于更严格的比较(#26139,#26157)
– 从Router::updateGroupStack方法中删除重复的代码(#26206,6debff6)

Laravel 5.7.10发布 为WP2原创文章,链接:https://www.wp2.cn/laravel/laravel-5-7-10%e5%8f%91%e5%b8%83/