Laravel 5.5.22 Released


November 28th, 2017

Laravel 5.5.22 Released

Laravel v5.5.22 was released yesterday with some helpful methods to return a file from storage as a response, and some nice database additions.

Jonathan Reinink added support for response() and download() methods on the file system. There are situations where you might want to return a file in the controller from storage or force a download:

class DocumentController extends Controller
public function show(Document $document)
// Return the document as a response
return Storage::response($document->path);
// Use a custom filename
return Storage::response($document->path, 'sweet.pdf');
// Force the file to download
return Storage::download($document->path);

Paulo Freitas added better temporary table support, which adds temporary table support to SQL Server, making $table->temporary() usable with any database driver, and he also added test coverage for temporary table creation.

Paulo also added better precision support on DateTime columns for databases that support them (MySQL, PostgreSQL and SQL Server). Due to some inconsistencies related to databases default precisions and Laravel’s default behavior, this is not entirely functional for SQL Server yet, but this is an already existing issue for SQL Server’s DateTime columns precision handling.

A removal worth noting is the between operator in a basic where clause by Mohamed Said.

Using between is currently not working and generating wrong sql:

\App\User::where('created_at', 'between', ['2017-01-01', '2017-01-30'])->get();

Used to generate:

select * from users where created_at between 2017-01-01

Now, you should use whereBetween instead (like whereIn).

v5.5.22 (2017-11-27)


  • Added response() and download() methods to file system (#22089)
  • Added complete temporary table support (#22110)
  • Added Mode::newQueryForRestoration() method (#22119)
  • Added precision support for date/time columns (#22122)
  • Added detection for MySQL Galera deadlocks (#22214)


  • Updated depreciated MailFake::queue() method signature (#22072)
  • Use MEDIUMTEXT instead of TEXT for database cache values (MySQL only) (#22091)
  • Include the name of the scheduled job in the output email subject (#22098)
  • Support Dblib version config for SQL Server (#22102)
  • Set Model::$exists to false when force-deleting a model using SoftDeletes (#22100)
  • Support empty strings in HasAttributes::fromDateTime() (#22108)
  • Return condition from throw_* helpers (#22149)
  • Make Collection::where() independent of error reporting (#22172)
  • Show more meaningful message when json translation file contains errors (#22165, cf29b88)
  • Improve Model::getTable() performance (#22222)
  • Use transaction in migrations using SQL Server (#22187)


  • Fixed HasManyThrough relation with custom intermediate and local keys when used in whereHas() (#22071, 3788cbd)
  • Fixed SQL Server handling of DATETIME columns (#22052)
  • Return default value from old() when session isn’t available (#22082)
  • Refactor Arr::flatten() to prevent performance issue (#22103)
  • Wrap MySQL JSON keys in double quotes when updating JSON columns (#22118)
  • Fixed custom URLs with prefix (root) for AWS storage (#22130)
  • Prevent authentication if password is the only specified field (#22167)


  • Removed between operator from basic where clauses (#22182)

Filed in:

Paul Redmond

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