Laravel 5.8.4 Released


March 13th, 2019

The Laravel team released v5.8.4 yesterday with a new collection join method and an HTTP Kernel middleware getter.

First, the new Collect::join() method to join all items from the collection using a string. The final item can use a separate “glue” string as well:

collect(['a', 'b', 'c']))->join(', ')); // returns 'a, b, c'

collect(['a', 'b', 'c']))->join(', ', ' and ')); // returns 'a, b and c'

collect(['a', 'b']))->join(', ', ' and ')); // returns 'a and b'

collect(['a']))->join(', ', ' and ')); // returns 'a'

collect([]))->join(', ', ' and ')); // returns ''

Next, the HTTP Kernel class has a new getRouteMiddleware() method which could come in handy to ensure that a middleware has been registered:

/** @test */
public function it_registers_a_custom_route_middleware()
    $middlewares = resolve(\App\Http\Kernel::class)->getRouteMiddleware();

    $this->assertArrayHasKey('custom', $middlewares);
    $this->assertEquals(\App\Http\Middleware\Custom::class, $middlewares['custom']);

The last new addition is adding Danish-specific characters to the Str class for proper support when the language is da. Here’s the list of characters from the PR:

'da' => [
    ['ø', 'å', 'Æ', 'Ø', 'Å'],
    ['oe', 'aa', 'Ae', 'Oe', 'Aa'],

An important fix is for JSON boolean queries ships in v5.8.4. Laravel’s 5.8 un-quoting of JSON values with MySQL broke boolean comparisons. For full details check out PR #27847.

You can see the full list of fixes below, and the whole diff between 5.8.4 and 5.8.3 on GitHub. The full release notes for Laravel 5.7 are available in the GitHub 5.8 changelog:



  • Added Illuminate\Support\Collection::join() method (#27723)
  • Added Illuminate\Foundation\Http\Kernel::getRouteMiddleware() method (#27852)
  • Added danish specific transliteration to Str class (#27857)


  • Fixed JSON boolean queries (#27847)

Filed in:

Paul Redmond

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