Laravel 5.7.20 Released
Published on by Paul Redmond
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
toDetectsLostConnections
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 forartisan migrate --pretend
(#27015) - Fixed
previousUrl
in the session if the call isprefetch
(#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()
sinceBuilder::update()
already adds theUPDATED_AT
timestamp. (#27026) - Changed
Name or service not known
tophp_network_getaddresses: getaddrinfo failed: Name or service not known
inDetectsLostConnections
trait (#27054, 5459ac1) - Changed Eloquent
ApiResource merge()
methods to acceptJsonResource
object (#27068) - Stop email re-verification with same link (#27070)