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 →
Securing Filament plugins with Plumb image

Securing Filament plugins with Plumb

Read article
LayaPHP: Self-Hosted Text Classification for PHP and Laravel image

LayaPHP: Self-Hosted Text Classification for PHP and Laravel

Read article
WhenMounted and BigInt Props in Inertia.js v3.8 image

WhenMounted and BigInt Props in Inertia.js v3.8

Read article
Postcodes for Laravel: GB Postcode Lookup and Geography Data image

Postcodes for Laravel: GB Postcode Lookup and Geography Data

Read article
Laravel 14 Adds a defaults() Method to Eloquent Models image

Laravel 14 Adds a defaults() Method to Eloquent Models

Read article
Laravel AI SDK and Laravel MCP Security Fixes: Update Now image

Laravel AI SDK and Laravel MCP Security Fixes: Update Now

Read article