Laravel 5.6.12 Released


March 19th, 2018

Laravel 5.6.12 Released

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';
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 fromSub() and fromRaw() 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() and assertForbidden() methods to TestResponse (#23526)
  • Added test helpers to assert that a job has been queued with a chain (#23531, 696f4d8)


  • Only set id on NotificationFake if there is no id set (#23470)
  • Check whether fetch() method exists in Application::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 clearing the cache without a cache directory (#23538)

Filed in:

Paul Redmond

Full stack web developer. Author of Lumen Programming Guide and Docker for PHP Developers.