Laravel 5.6.12 Released
Published on by Paul Redmond
Laravel 5.6.12 shipped over the weekend with added support for signed routes and URLs along with quite a few other new additions.
Support for signed routes was added by Taylor Otwell, which provides a few new methods you can use to generate a signed route and a temporary signed route. For example, if you have a named route foo
, you can generate a temporary URL. The following snippet comes from the pull request tests:
Route::get('/foo/{id}', function (Request $request, $id) { return $request->hasValidSignature() ? 'valid' : 'invalid';})->name('foo'); URL::temporarySignedRoute('foo', now()->addMinutes(5), ['id' => 1]);
The signed routes come with a new ValidateSignature
middleware that will throw an InvalidSignatureException
if the route signature is tampered with or expires, which results in a 401 status code.
Two new query builder methods were added, fromSub()
and fromRaw()
that help you create a subquery on from
, instead of only being able to use table names.
Next up, is a new “not regex” validation rule that validates that an attribute doesn’t pass a regular expression check.
An “after” callback was added for model factories that allow a user to define an action to be run after the model is created or made using create()
or make()
.
A new “any filled” conditional was added to the request used to determine if any of a group of inputs is filled on the request. Before Laravel 5.6.12, you would do something like this:
if ($request->filled('disk') || $request->filled('site')) { //}
Now, it can be changed to use the new method conditional, which will accept an array of inputs or any number of arguments:
if ($request->filledAny(['disk', 'site'])) { //} // Or if ($request->filledAny('disk', 'site')) { //}
Two new assertions were added to the TestResponse
class, assertNotFound()
and assertForbidden()
. These methods are used to assert a 404 status code and a 403 status code respectively.
Last up test helpers were added to assert that a job is queued with a chain.
Here’s the full release notes from the Laravel 5.6 changelog:
v5.6.12 (2018-03-14)
Added
- Added
fromSub()
andfromRaw()
methods to query builder (#23476) - Added “Not Regex” validation rule (#23475)
- Added seed parameter to
Arr::shuffle()
(#23490) - Added after callback to model factories (#23495, d79509d)
- Added
Request::anyFilled()
method (#23499, 896d817) - Added support for signed routes (#23519)
- Added
assertNotFound()
andassertForbidden()
methods toTestResponse
(#23526) - Added test helpers to assert that a job has been queued with a chain (#23531, 696f4d8)
Changed
- Only set id on
NotificationFake
if there is no id set (#23470) - Check whether
fetch()
method exists inApplication::output()
(#23471) - Improve asset loading in
app.stub
(#23479) - Support ignoring a model during a unique validation check (#23524)
- Support multiple model observers (#23507)
-
LogManager
driver capable of producing logger with any Monolog handler (#23527, d499617) - Support passing model instance to
updateExistingPivot()
(#23535) - Allow for custom
TokenGuard
fields (#23542)
Fixed
- Fixed clearing the cache without a cache directory (#23538)