News

Laravel 5.7.20 Released

Published
Laravel 5.7.20 Released image

Release updates

Never miss a Laravel release

Get an email whenever a new Laravel release lands.

The Laravel team released 5.7.20 this week with added chunkById() support on model relations, a new collection method, and some new FilesystemAdapter assertion methods.

First, you can now call chunkById() on related models in BelongsToMany and HasManyThrough relations:

$user->articles()->chunkById(1, function (Collection $collection) {
// ...
});

Next, a new whereNotBetween collection method is useful to filter collection items not between a given range:

$filtered = $collection->whereNotBetween('price', [100, 200]);

In the above example, items greater than 200 or less than 100 get returned in a filtered collection instance. The condition does not include the upper and lower boundaries, so in our example items that are exactly 100 or 200 are not included.

Next, you can allow predefined log channels to change the formatter via the configuration. Check out PR #26895 for further details.

The FilesystemAdapter storage assertions are now chainable and can handle multiple files at once:

Storage::disk('local')
->assertExists([
$path,
$anotherPath,
])
->assertMissing([
$yetAnotherPath,
$oneMoreFilePath,
]);

You can now access the current route’s original bound parameters:

// A single param
$route->originalParameter('name');
 
// All params
$route->originalParameters();

The last new feature is pushedJobs() method on the QueueFake fake to retrieve all the jobs pushed to the queue during a test.

You can see the full list of fixes below, and the whole diff between 5.7.19 and 5.7.20 on GitHub. The full release notes for Laravel 5.7 are available in the GitHub 5.7 changelog:

v5.7.20

Added

  • Added chunkById support in relations (#26919)
  • Added Collection::whereNotBetween method (#27028)
  • Allowed predefined log channels to change formatter from config (#26895)
  • Allowed storage assertions (FilesystemAdapter::assertExists / FilesystemAdapter::assertMissing) to handle multiple files at once (#26975)
  • Added Adaptive Server connection failed to DetectsLostConnections trait (#27055)
  • Added Route::originalParameters() (#27056)
  • Added QueueFake::pushedJobs() (#27089, 695ffa1)

Fixed

  • Prevents unnecessary queries when lazy loading empty relationships (#26992)
  • Fixed broken Command::setHidden method (#27005)
  • Fixed Str::slug method (#27002)
  • Ignore --seed option for artisan migrate --pretend (#27015)
  • Fixed previousUrl in the session if the call is prefetch (#27017)
  • Fixed nullable MorphTo touching (#27031)
  • Fixed Collection::loadMissing() with duplicate relation names (#27040)
  • Fixed some commands (#27020)
  • Ensured the command context is forwarded to calls (#27012, #27065)
  • Fixed Collection::loadMorph() issue relations loading issue (#27081)

Changed

  • Removed HasOneOrMany::update() since Builder::update() already adds the UPDATED_AT timestamp. (#27026)
  • Changed Name or service not known to php_network_getaddresses: getaddrinfo failed: Name or service not known in DetectsLostConnections trait (#27054, 5459ac1)
  • Changed Eloquent ApiResource merge() methods to accept JsonResource object (#27068)
  • Stop email re-verification with same link (#27070)
Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article
Laravel AI SDK Adds Human-in-the-Loop Tool Approval image

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Read article
Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals image

Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals

Read article
Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs image

Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs

Read article
Blade Formatting in Laravel Pint image

Blade Formatting in Laravel Pint

Read article
Inertia DevTools Is Now on the Chrome Web Store image

Inertia DevTools Is Now on the Chrome Web Store

Read article