[Laravel] 5.7.20がリリースされました
laravel/frameworkのバージョン5.7.20がリリースされました。追加された機能について確認します。
リレーションでchunkById()
メソッドがサポートされました
リレーションを指定しているモデルで以下のように利用できます。
$user->posts()->chunkById(2, function ($collection) {
// ...
});
Collection
にwhereNotBetween()
メソッドが追加されました
値の範囲外でフィルターをかけることができます。
$collection = collect([
['product' => 'Pencil', 'price' => 30],
['product' => 'Chair', 'price' => 80],
['product' => 'Door', 'price' => 100],
['product' => 'Bookcase', 'price' => 150],
['product' => 'Desk', 'price' => 200],
]);
$filtered = $collection->whereNotBetween('price', [100, 200]);
$filtered->all();
/*
[
['product' => 'Bookcase', 'price' => 30],
['product' => 'Bookcase', 'price' => 80],
]
*/
ログチャンネルで出力されるログのフォーマットを変更できるようになりました
FilesystemAdapter
にassertExists
とassertMissing
アサーションが追加されました
DetectsLostConnections
トレイトにエラー内容が追加されました
Route
にoriginalParameters()
メソッドが追加されました
LaravelではModel Binding
等でリクエストされたパラメーターに対して、それに対応するオブジェクト等をバインドできます。
コントローラー等でオリジナルのパラメーターが必要な場合にこのメソッドを利用します。
$phpunit = $this;
$router = $this->getRouter();
$router->bind('bar', function ($value) {
return strlen($value);
});
$router->get('foo/{bar}', [
'middleware' => SubstituteBindings::class,
'uses' => function ($bar) use ($router, $phpunit) {
$route = $router->getCurrentRoute();
$phpunit->assertEquals('taylor', $route->originalParameter('bar'));
$phpunit->assertEquals('default', $route->originalParameter('unexisting', 'default'));
$phpunit->assertEquals(['bar' => 'taylor'], $route->originalParameters());
return $bar;
},
]);
$this->assertEquals(6, $router->dispatch(Request::create('foo/taylor', 'GET'))->getContent());
QueueFake
にpushedJobs()
メソッドが追加されました
詳しい変更については以下を確認してください。