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

masteringlaravel logo
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review

The latest

View all →
Laravel Auditor Audits Your App With Your Own AI Agent image

Laravel Auditor Audits Your App With Your Own AI Agent

Read article
A simple form builder that stays out of your way image

A simple form builder that stays out of your way

Read article
Laravel AI: Trace Agent Runs With Lifecycle Events image

Laravel AI: Trace Agent Runs With Lifecycle Events

Read article
Laravel AI: Get Raw HTTP Responses and Rate Limits image

Laravel AI: Get Raw HTTP Responses and Rate Limits

Read article
Agent Run Observability in Laravel AI SDK 0.11 image

Agent Run Observability in Laravel AI SDK 0.11

Read article
Debounced Queued Event Listeners in Laravel image

Debounced Queued Event Listeners in Laravel

Read article