Never Miss a Laravel Release 🚀
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
NotificationFakeif 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)
LogManagerdriver capable of producing logger with any Monolog handler (#23527, d499617)- Support passing model instance to
updateExistingPivot()(#23535) - Allow for custom
TokenGuardfields (#23542)
Fixed
- Fixed clearing the cache without a cache directory (#23538)