Laravel 5.5.22 Released
Published on by Paul Redmond
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
- Added
response()
anddownload()
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)
Changed
- Updated depreciated
MailFake::queue()
method signature (#22072) - Use
MEDIUMTEXT
instead ofTEXT
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
tofalse
when force-deleting a model usingSoftDeletes
(#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
- Fixed
HasManyThrough
relation with custom intermediate and local keys when used inwhereHas()
(#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
- Removed
between
operator from basic where clauses (#22182)