Laravel Framework v5
https://github.com/laravel/framework
v5.8.35 (2019-09-03)
Added
- Added support of
NOT RLIKE
SQL operator (#29788) - Added hebrew letters to
Str:slug
language array (#29838, ba772d6) - Added support of
php7.4
(#29842)
Fixed
- Fixed self-referencing
MorphOneOrMany
existence queries (#29765) - Fixed
QueueFake::size()
method (#29761, ddaf6e6)
Changed
v5.8.34 (2019-08-27)
Fixed
- Fixed
MailMessage::render()
ifview
method was used (#29698) - Fixed setting of numeric values as model attribute (#29714)
- Fixed mocking of events
until
method inMocksApplicationServices
(#29708) - Fixed: Use custom attributes in lt/lte/gt/gte rules messages (#29716)
Changed:
- Changed applying of Aws Instance Profile (#29738)
v5.8.33 (2019-08-20)
Added
- Added
ValidatesWhenResolvedTrait::passedValidation()
callback (#29549) - Implement new types for email validation support (#29589)
- Added Redis 5 support (#29606)
- Added
insertOrIgnore
support (#29639, 46d7e96, #29645) - Allowed to override the existing
Whoops
handler.(#29564)
Fixed
- Fixed non-displayable boolean values in validation messages (#29560)
- Avoid undefined index errors when using AWS IAM (#29565)
- Fixed exception message in the
ProviderRepository::writeManifest()
(#29568) - Fixed invalid link expiry count in ResetPassword (#29579)
- Fixed command testing of
output
andquestions
expectations (#29580) - Added ignoring of classes which are not instantiable during event discovery (#29587)
- Used real classname for seeders in the output (#29601)
Refactoring
- Simplified
isset()
(#29581)
v5.8.31 (2019-08-06)
Fixed
- Fixed FatalThrowableError in
updateExistingPivot()
when pivot is non-existent (#29362) - Fixed worker timeout handler when there is no job processing (#29366)
- Fixed
assertJsonValidationErrors()
with muliple messages (#29380) - Fixed UPDATE queries with alias (#29405)
Changed
Illuminate\Cache\ArrayStore::forget()
returns false on missing key (#29427)- Allow chaining on
QueryBuilder::dump()
method (#29437) - Change visibility to public for
hasPivotColumn()
method (#29367) - Added line break for plain text mails (#29408)
- Use
date_create
to prevent date validator warnings (#29342, #29389)
v5.8.30 (2019-07-30)
Added
- Added
MakesHttpRequests::option()
andMakesHttpRequests::optionJson()
methods (#29258) - Added
Blueprint::uuidMorphs()
andBlueprint::nullableUuidMorphs()
methods (#29289) - Added
MailgunTransport::getEndpoint()
andMailgunTransport::setEndpoint()
methods (#29312) - Added
WEBP
to image validation rule (#29309) - Added
TestResponse::assertSessionHasInput()
method (#29327) - Added support for custom redis driver (#29275)
- Added Postgres support for
collation()
on columns (#29213)
Fixed
- Fixed collections with JsonSerializable items and mixed values (#29205)
- Fixed MySQL Schema Grammar
$modifiers
order (#29265) - Fixed UPDATE query bindings on PostgreSQL (#29272)
- Fixed default theme for Markdown mails (#29274)
- Fixed UPDATE queries with alias on SQLite (#29276)
- Fixed UPDATE and DELETE queries with join bindings on PostgreSQL (#29306)
- Fixed support of
DateTime
objects andint
values inorWhereDay()
,orWhereMonth()
,orWhereYear()
methods in theBuilder
(#29317) - Fixed DELETE queries with joins on PostgreSQL (#29313)
- Prevented a job from firing if job marked as deleted (#29204, 1003c27)
- Fixed model deserializing with custom
Model::newCollection()
(#29196)
Reverted
Changed
v5.8.29 (2019-07-16)
Added
- Added possibility for
WithFaker::makeFaker()
use localapp.faker_locale
config (#29123) - Added ability to set theme for mail notifications (#29132)
- Added runtime for each migration to output (#29149)
- Added possibility for
whereNull
andwhereNotNull
to accept array columns argument (#29154) - Allowed
Console\Scheduling\ManagesFrequencies::hourlyAt()
to accept array of integers (#29173)
Performance
- Improved eager loading performance for MorphTo relation (#29129)
Fixed
- Fixed
Builder::whereDay()
andBuilder::whereMonth()
with raw expressions - Fixed DELETE queries with alias on SQLite (#29164)
- Fixed queue jobs using SerializesModels losing order of passed in collections (#29136)
- Fixed conditional binding for nested optional dependencies (#29180)
- Fixed: validator not failing on custom rule when message is null (#29174)
- Fixed DELETE query bindings (#29165)
v5.8.28 (2019-07-09)
Added
- Make TestResponse tappable (#29033)
- Added
Support\Collection::mergeRecursive()
method (#29084) - Added
Support\Collection::replace()
andSupport\Collection::replaceRecursive()
methods (#29088) - Added
Session\Store::only()
method (#29107)
Fixed
- Fixed cache repository setMultiple with an iterator (#29039)
- Fixed cache repository getMultiple implementation (#29047)
Reverted
Changed
- Fail job immediately after it timeouts if it wont be retried (#29024)
v5.8.27 (2019-07-02)
Added
- Let
mix
helper useapp.mix_url
config (#28952) - Added
RedisManager::setDriver()
method (#28985) - Added
whereHasMorph()
and corresponding methods to work withMorphTo
relations (#28928)
Fixed
- Fixed: Changing a database field to binary include
collation
(#28975) - Fixed app.stub for jquery components loading (#29001)
- Fixed equivalent for greek letter theta in
Str::ascii()
(#28999)
Changed
- Prevented
TestResponse::dump()
andTestResponse::dumpHeaders()
methods from ending execution of the script (#28960) - Allowed
TestResponse::dump()
andTestResponse::dumpHeaders()
methods chaining (#28967) - Allowed to
NotificationFake
accept custom channels (#28969) - Replace contents of service manifest atomically (#28973)
- Pass down the
serverVersion
database connection option to Doctrine DBAL connection (#28964, 1b55b28) - Replace
self::
withstatic::
in theRelation::getMorphedModel()
(#28974) - Set a message for
SuspiciousOperationException
(#29000) - Storing Mailgun Message-ID in the headers after sending (#28994)
v5.8.25 (2019-06-25)
Added
- Added
json
option toroute:list
command (#28894)
Fixed
- Fixed columns parameter on paginate method (#28937)
- Prevent event cache from firing multiple times the same event(s) (#28904)
- Fixed
TestResponse::assertJsonMissingValidationErrors()
on empty response (#28595, #28913) - Fixed percentage sign in filename fallback in the
FilesystemAdapter::response()
(#28947)
Changed
v5.8.24 (2019-06-19)
Added
- Added possibility to assert that the session contains a given piece of data using a closure in
TestResponse::assertSessionHas()
(#28837) - Added
TestResponse::assertUnauthorized()
(#28851) - Allowed to define port in
ServeCommand
viaSERVER_PORT
env variable (#28849, 6a18e73) - Allowed console environment argument to be separated with a space (#28869)
- Added
@endcomponentFirst
directive (#28884) - Added optional parameter
$when
toretry
helper (85c0801)
Fixed
- Fixed
Builder::dump()
andBuilder::dd()
with global scopes (#28858)
Reverted
Changed
- Handle
SuspiciousOperationException
in router asNotFoundHttpException
(#28866)
v5.8.23 (2019-06-14)
Fixed
- Fixed strict comparison in redis configuration Parsing. (#28830)
Changed
- Improved support for arrays on
TestResponse::assertJsonValidationErrors()
(2970dab)
v5.8.22 (2019-06-12)
Added
- Added
@componentFirst
directive (#28783) - Added support for typed eager loads (#28647, d72e3cd)
- Added
Related
andRecommended
to Pluralizer (#28749) - Added
Str::containsAll()
method (#28806) - Added: error handling for maintenance mode commands (#28765, 9e20849)
- Added message value assertion to
TestResponse::assertJsonValidationErrors()
(#28787) - Added: Automatically bind the viewAny method to the index controller action (#28820)
Fixed
- Fixed database rules with where clauses (#28748)
- Fixed: MorphTo Relation ignores parent $timestamp when touching (#28670)
- Fixed: Sql Server issue during
dropAllTables
when foreign key constraints exist (#28750, #28770) - Fixed
Model::getConnectionName()
whenModel::cursor()
used (#28804)
Changed
v5.8.20 (2019-06-04)
Added
- Added
viewAny()
to dummy policy class (#28654, #28671) - Added
fullpath
option tomake:migration
command (#28669)
Performance improvement
Fixed
- Fixed
artisan cache:clear
command with a redis cluster using the Predis library (#28706)
v5.8.19 (2019-05-28)
Added
- Added optional
DYNAMODB_ENDPOINT
env variable to configure endpoint for DynamoDB (#28600) - Added
Illuminate\Foundation\Application::isProduction()
method (#28602) - Allowed exception reporting in
rescue()
to be disabled (#28617) - Allowed to parse Url in Redis configuration (#28612, f4cfb32)
- Allowed setting additional (
sourceip
andlocaldomain
) smtp config options (#28631, 435c05b)
Fixed
- Fixed Eloquent UPDATE queries with alias (#28607)
- Fixed
Illuminate\Cache\DynamoDbStore::forever()
(#28618) - Fixed
event:list
command, when using a combination of manually registering events and event auto discovering (#28624)
Performance improvement
- Improve performance for
Arr::flatten()
(#28614)
Changed
- Added
id
toModelNotFoundException
exception inImplicitRouteBinding
(#28588)
v5.8.18 (2019-05-21)
Added
- Added
html
as a new valid extension for views (#28541) - Added: provide notification callback
withSwiftMessage
inMailMessage
(#28535)
Fixed
- Fixed
Illuminate\Cache\FileStore::getPayload()
in case of broken cache (#28536) - Fixed exception:
The filename fallback must only contain ASCII characters
in theIlluminate\Filesystem\FilesystemAdapter::response()
(#28551)
Changed
- Make
Support\Testing\Fakes\MailFake::failures()
returns an empty array (#28538) - Make
Support\Testing\Fakes\BusFake::pipeThrough()
returns$this
(#28564)
Refactoring
- Cleanup html (#28583)
2019/05/14
Added
- Added
Illuminate\Foundation\Testing\TestResponse::dumpHeaders()
(#28450) - Added
ends_with
validation rule (#28455) - Added possibility to use a few
columns
arguments in theroute:list
command (#28459) - Added
retryAfter
inMail\SendQueuedMailable
andNotifications\SendQueuedNotifications
object (#28484) - Added
Illuminate\Foundation\Console\Kernel::scheduleCache()
(6587e78) - Added support for multiple
--path
options within migrate commands (#28495) - Added
Tappable
trait (#28507) - Added support auto-discovery for events in a custom application directory, that sets via
Illuminate\Foundation\Application::useAppPath()
(#28493) - Added passing of notifiable email through reset link (#28475)
- Added support flush db on clusters in
PhpRedisConnection
andPredisConnection
(f4e8d5c)
Fixed
- Fixed session resolver in
RoutingServiceProvider
(without bind ofsession
inContainer
) (#28438) - Fixed
route:list
command when routes were dynamically modified (#28460, #28463) - Fixed
required
validation with multiplepasses()
calls (#28502) - Fixed the collation bug when changing columns in a migration (#28514)
- Added password to the
RedisCluster
only ifredis
>=4.3.0
(1371940) - Used
escapeshellarg
on windows symlink inFilesystem::link()
(44c3feb)
Changed
- Reset webpack file for none preset (#28462)
v5.8.16 (2019-05-07)
Added
- Added: Migration Events (#28342)
- Added ability to drop types when running the
migrate:fresh
command (#28382) - Added
Renderable
functionality toMailMessage
(#28386)
Fixed
- Fixed the remaining issues with registering custom Doctrine types (#28375)
- Fixed
fromSub()
andjoinSub()
with table prefix inQuery\Builder
(#28400) - Fixed false positives for
Schema::hasTable()
with views (#28401) - Fixed
sync
results with customPivot
model (#28416, e31d131)
Changed
- Modified
None
AndReact
presets withvue-template-compiler
(#28389) - Changed
navbar-laravel
class tobg-white shadow-sm
class inlayouts\app.stub
(#28417) - Don't execute query in
Builder::findMany()
when ids are emptyArrayable
(#28432) - Added parameter
password
forRedisCluster
construct function (#28434) - Pass email verification URL to callback in
Auth\Notifications\VerifyEmail
(#28428) - Updated
RouteAction::parse()
(#28397) - Updated
Events\DiscoverEvents
(#28421, #28426)
v5.8.15 (2019-04-27)
Added
Changed:
- Fix BelongsToMany read wrong parent key (#28317)
- Fix make:auth not using apps configured views path (#28324, e78cf02)
- Add custom message to thrown exception (#28335)
- Fix recursive replacements in Str::replaceArray() (#28338)
- Add the
dd
method to the query builder (#28357) - Improve output of "assertSessionDoesntHaveErrors" when called with no arguments (#28359)
- Allow logging out other devices without setting remember me cookie (#28366)
- Break out password reset credentials into a method (#28370)
v5.8.14 (2019-04-23)
Added
- Implemented
Job Based Retry Delay
(#28265)
Changed
- Update auth stubs with
@error
blade directive (#28273) - Convert email data tables to layout tables (#28286)
Reverted
- Partial reverted ability of register custom Doctrine DBAL, since of #28282 issue (#28301)
Refactoring
v5.8.13 (2019-04-18)
Added
- Added
@error
blade directive (#28062) - Added the ability to register
custom Doctrine DBAL
types in the schema builder (#28214, 91a6afe)
Fixed
Reverted
- Reverted of
possibility for use in / not in operators in the query builder
since of issue withwherePivot()
method (04a547ee)
v5.8.12 (2019-04-16)
Added
- Added
Illuminate\Support\Collection::duplicates()
(#28181) - Added
Illuminate\Database\Eloquent\Collection::duplicates()
(#28194) - Added
Illuminate\View\FileViewFinder::getViews()
(#28198) - Added helper methods
onSuccess()
\onFailure()
\pingOnSuccess()
\pingOnFailure()
\emailOnFailure()
toIlluminate\Console\Scheduling\Event
(#28167) - Added
SET
datatype on MySQL Grammar (#28171) - Added possibility for use
in
/not in
operators in the query builder (#28192)
Fixed
- Fixed memory leak in JOIN queries (#28220)
- Fixed circular dependency in
Support\Testing\Fakes\QueueFake
for undefined methods (#28164) - Fixed exception in
lt
\lte
\gt
\gte
validations with different types (#28174) - Fixed
string quoting
forSQL Server
(#28176) - Fixed
whereDay
andwhereMonth
when passingint
values (#28185)
Changed
- Added
autocomplete
attributes to the html stubs (#28226) - Improved
event:list
command (#28177, cde1c5d) - Updated
Illuminate\Database\Console\Factories\FactoryMakeCommand
to generate more IDE friendly code (#28188) - Added missing
LockProvider
interface onDynamoDbStore
(#28203) - Change session's user_id to unsigned big integer in the stub (#28206)
v5.8.11 (2019-04-10)
Added
- Allowed to call
macros
directly onIlluminate\Support\Facades\Date
(#28129) - Allowed
lock
to be configured inlocal filesystems
(#28124) - Added tracking of the exit code in scheduled event commands (#28140)
Fixed
- Fixed of escaping single quotes in json paths in
Illuminate\Database\Query\Grammars\Grammar
(#28160) - Fixed event discovery with different Application Namespace (#28145)
Changed
- Added view path to end of compiled blade view (in case if path is not empty) (#28117, #28141)
- Added
realpath
toapp_path
during string replacement inIlluminate\Foundation\Console\Kernel::load()
(82ded9a)
Refactoring
v5.8.9 (2019-04-02)
Added
Fixed
- Fixed serializing a collection from a
Resource
withpreserveKeys
property (#27985) - Fixed:
SoftDelete::runSoftDelete
andSoftDelete::performDeleteOnModel
with overwrittenModel::setKeysForSaveQuery
(#28081)
Changed
- Update forever cache duration for database driver from minutes to seconds (#28048)
Refactoring:
- Refactoring of
Illuminate\Auth\Access\Gate::callBeforeCallbacks()
(#28079)
v5.8.8 (2019-03-26)
Added
- Added
Illuminate\Database\Query\Builder::forPageBeforeId()
method (#28011)
Fixed
- Fixed
BelongsToMany::detach()
with custom pivot class (#27997) - Fixed incorrect event namespace in generated listener by
event:generate
command (#28007) - Fixed unique validation without ignored column (#27987)
Changed
- Added
parameters
argument toresolve
helper (#28020) - Don't add the path only if path is
empty
in compiled view (#27976)
Refactoring
- Refactoring of
env()
helper (#27965)
Fixed
- Fix: Locks acquired with block() are not immediately released if the callback fails (#27957)
Changed
- Allowed retrieving
env
variables withgetenv()
(#27958, c37702c) - Used
stripslashes
forValidation\Rules\Unique.php
(#27940, 34759cc)
Refactoring
- Refactoring of
Illuminate\Http\Concerns::allFiles()
(#27955)
Added
- Added
Illuminate\Database\DatabaseManager::setReconnector()
(#27845) - Added
Illuminate\Auth\Access\Gate::none()
(#27859) - Added
OtherDeviceLogout
event (#27865, 5e87f2d) - Added
even
andodd
flags to theLoop
variable in theblade
(#27883)
Changed
- Add replacement for lower danish
æ
(#27886) - Show error message from exception, if message exist for
403.blade.php
and503.blade.php
error (#27893, #27902)
Fixed
- Fixed seeding logic in
Arr::shuffle()
(#27861) - Fixed
Illuminate\Database\Query\Builder::updateOrInsert()
with empty$values
(#27906) - Fixed
Application::getNamespace()
method (#27915) - Fixed of store previous url (#27935, 791992e)
Security
v5.8.4 (2019-03-12)
Added
- Added
Illuminate\Support\Collection::join()
method (#27723) - Added
Illuminate\Foundation\Http\Kernel::getRouteMiddleware()
method (#27852) - Added danish specific transliteration to
Str
class (#27857)
Fixed
- Fixed JSON boolean queries (#27847)
v5.8.3 (2019-03-05)
Added
- Added
Collection::countBy
(#27770) - Added protected
EloquentUserProvider::newModelQuery()
(#27734, 9bb7685) - Added protected
StartSession::saveSession()
method (#27771, 76c7126) - Allow
belongsToMany
to takeModel/Pivot
class name as a second parameter (#27774)
Fixed
- Fixed environment variable parsing (#27706)
- Fixed guessed policy names when using
Gate::forUser
(#27708) - Fixed
via
asstring
in theNotification
(#27710) - Fixed
StartSession
middleware (499e4fe) - Fixed
stack
channel's bug related to thelevel
(#27726, bc884bb) - Fixed
email
validation for not string values (#27735)
Changed
- Check if
MessageBag
is empty before checking keys exist in theMessageBag
(#27719)
v5.8.1 (2019-02-27)
Added
- Added
Illuminate\View\FileViewFinder::setPaths()
(#27678)
Changed
- Return fake objects from facades (#27680)
Reverted
- reverted changes related to the
Facade
(63d87d7)
v5.8.0 (2019-02-26)
Check the upgrade guide in the Official Laravel Documentation.
v5.7.28 (2019-02-26)
Added
Changed
- Update vue preset to exclude
@babel/preset-react
(#27645) - Reflash the session for the broadcasting auth call (#27647)
- Improving readability in
AuthenticateWithBasicAuth
Middleware (#27661) - Use safe container getter on
Pipeline
(#27648)
Fixed
v5.7.26 (2019-02-12)
Added
- Added
Illuminate\Pipeline\Pipeline::thenReturn()
(#27429) - Added
Illuminate\Cache\TaggedCache::getTags()
(#27445) - Added
Illuminate\Http\ResponseTrait::getCallback()
(#27464) - Added license file to each component (9e57e8b)
- Added
Model::withoutEvents()
method (#27419, 5c5d6b2)
Reverted
- Revert of "Fixed wrong class being used when eager loading nullable
MorphTo
withwithDefault()
(#27411)"(9bbf644)
Changed
v5.7.25 (2019-02-05)
Added
- Allowed specifying custom translation for date relative messages (#27341)
- Add computed support to SQL Server schema grammar (#27346, 1c74d7f)
- Allowed
ENV
to control paths ofcache files
forservices
,packages
androutes
(#27389)
Fixed
- Fixed
BelongsToMany
pivot relationship child with loaded relations wakeup (#27358) - Fixed wrong class being used when eager loading nullable
MorphTo
withwithDefault()
(#27411)
Changed
- Removed
php_network_getaddresses: getaddrinfo failed: Name or service not known
inDetectsLostConnections
trait (#27418)
v5.7.23 (2019-01-29)
Added
- Added
AbstractPaginator::getOptions()
method (#27273) - Added
Communication link failure
toDetectsLostConnections
trait (#27307) - Added
orWhere()
proxy
forscopes
toEloquentBuilder
(#27281, 2e6fe85) - Allow the
app path
to be configured (#27332, d73e672) - Added config for using
WhatFailureGroupHandler
whenStackDriver
created for Logger (#27308 ,6a92651)
Fixed
- Fixed
QueueableCollection
serialization of Eloquent Models when usingBinary IDs
(#27271) - Replaced
newModelQuery()
withnewQueryWithoutRelationships()
forUPDATE
/DELETE
queries (#27277)
Changed
v5.7.22 (2019-01-22)
Fixed
- Fixed
TestResponse::assertJsonValidationErrors()
when there are no errors (#27190)
Changed
v5.7.21 (2019-01-15)
Fixed
- Fixed
Blueprint::removeColumn()
(#27115, #27122) - Fixed allowing of null broadcast connection driver (#27135)
- Fixed
ModelMakeCommand::handle()
should always returnbool
value (#27156) - Fixed
TestResponse::assertSessionDoesntHaveErrors()
when there is no errors (#27145) - Fixed default message is localization twice in
403.blade.php
error page (4a08120)
Changed
v5.7.20 (2019-01-08)
Added
- Added
chunkById
support in relations (#26919) - Added
Collection::whereNotBetween
method (#27028) - Allowed predefined log channels to change formatter from config (#26895)
- Allowed storage assertions (
FilesystemAdapter::assertExists
/FilesystemAdapter::assertMissing
) to handle multiple files at once (#26975) - Added
Adaptive Server connection failed
toDetectsLostConnections
trait (#27055) - Added
Route::originalParameters()
(#27056) - Added
QueueFake::pushedJobs()
(#27089, 695ffa1)
Fixed
- Prevents unnecessary queries when lazy loading empty relationships (#26992)
- Fixed broken
Command::setHidden
method (#27005) - Fixed
Str::slug
method (#27002) - Ignore
--seed
option forartisan migrate --pretend
(#27015) - Fixed
previousUrl
in the session if the call isprefetch
(#27017) - Fixed nullable
MorphTo
touching (#27031) - Fixed
Collection::loadMissing()
with duplicate relation names (#27040) - Fixed some commands (#27020)
- Ensured the command
context
is forwarded to calls (#27012, #27065) - Fixed
Collection::loadMorph()
issue relations loading issue (#27081)
Changed
- Removed
HasOneOrMany::update()
sinceBuilder::update()
already adds theUPDATED_AT
timestamp. (#27026) - Changed
Name or service not known
tophp_network_getaddresses: getaddrinfo failed: Name or service not known
inDetectsLostConnections
trait (#27054, 5459ac1) - Changed Eloquent
ApiResource merge()
methods to acceptJsonResource
object (#27068) - Stop email re-verification with same link (#27070)
v5.7.19 (2018-12-18)
Added
- Added
Illuminate\Support\Collection::whereBetween
method (#26888)
Fixed
- Reverted changes related to
app()->call()
(fefaf46) - Reset doctrineConnection property on Database/Connection when reconnecting (#26890)
v5.7.18 (2018-12-17)
Added
- Added missing
starts_with
validation message (#26822) - Added
Facade::resolved()
method to register pending callback until the service is available. (#26824) - Added env var
APP_CONFIG_CACHE
to control cache config path (578bc83)
Changed
- Changed
TransportManager::createMailDriver
(#26846)
Fixed
- Fixed of using
illuminate/mail
outside of Laravel with driver log (#26842) - Fixed some bugs for
app()->call()
(#26852) - Added workaround for PHP-bug related to incorrect variable values when Opcache enabled in PHP v 7.3.0 (36d3436)
v5.7.17 (2018-12-12)
Added
- Added
Database\Query\Builder::insertUsing
method (#26732, 8216b46) - Added
Database\Query\Builder::havingBetween
method (#26758) - Added
Packets out of order. Expected
string toDetectsLostConnections
trait (#26760) - Added
NOT VALID
option for skipping validation when adding postgres foreign keys (#26775)
Fixed
v5.7.16 (2018-12-05)
Added
- Added localization for
403.blade.php
and503.blade.php
(#26751) - Changing the Migrator to accept not only migration directory paths, but migration file paths too (#26642, c4b13bf)
Fixed
- Fixed self-referencing HasManyThrough existence queries (#26662)
- Fixed HasManyThrough existence queries with same parent and through parent table (#26676)
- Fixed breaking eager loading with "incrementing" string keys (#26688)
- Remove the Register
<li>
when the route doesn't exist inapp.stub
(#26708) - Fixed
Collection::some
method (#26696) - Revert breaking change in
TestResponse::decodeResponseJson
method (#26713) - Fixed
PhpRedisConnection::mget
(#26716) - Fixed
Eloquent\Collection::loadCount
attribute syncing (#26714) - Fixed
Illuminate\Foundation\Testing\Concerns\InteractsWithDatabase::seed
for array accepting (#26734) - Fixed
FormRequest
validation triggering twice (#26731)
Changed
- Changed markdown on auth stub view (
Auth/Console/stubs/make/views/auth/login.stub
) (#26648) - Moved Slack and Nexmo notification channels to the own packages
laravel/nexmo-notification-channel
,laravel/slack-notification-channel
(#26689, #26727)
Deprecated
$cachedSchema
property inUrlGenerator
is deprecated. Will be renamed to the$cachedScheme
in 5.8 (#26640)
v5.7.15 (2018-11-26)
Added
- Added
date_equals
validation message (#26584) - Added
starts_with
validation rule (#26612) - Added relationship getters
BelongsToMany::getParentKeyName
,BelongsToMany::getRelatedKeyName
,HasManyThrough::getFirstKeyName
,HasManyThrough::getForeignKeyName
,HasManyThrough::getSecondLocalKeyName
,HasOneOrMany::getLocalKeyName
,MorphToMany::getInverse
(#26607) - Make
ResourceCollection
countable (#26595)
Fixed
v5.7.14 (2018-11-21)
Added
- Added
Macroable
trait toIlluminate\Cookie\CookieJar
(#26445) - Added ability to disable password reset route (#26459)
- Added ability to publish error views (#26460)
- Added ability to set notifcation tries and timeout (#26493)
- Added
mail.log_channel
config for makelog
for mail driver configurable (#26510) - Allowed
asset
root urls to be configurable viaapp.asset_url
(9172a67) - Added
Error while sending QUERY packet
string toDetectsLostConnections
trait (#26233) - Added env override for running in console (a36906a, 19f2245)
Fixed
- Fixed
UNION
aggregate queries with columns (#26466) - Allowed migration table name to be guessed without
_table
suffix (#26429) - Fixed
TestResponse::assertExactJson
for empty JSON objects (#26353, e6ebc8d, 621d91d, #26508) - Fixed cache repository for PHP from 7.2.12v (#26495)
- Fixed user authorization check for Email Verification (#26528)
- Fixed nested JOINs on SQLite (#26567)
Changed
- Improved eager loading performance (#26434, #26453, 3992140, #26471, a3738cf, #26531)
- Adjusted
mix
missing asset exceptions (#26431) - Used
asset
helper to generate full path urls in exception views (#26411) - Changed
Illuminate\Foundation\Testing\Concerns\MocksApplicationServices::withoutJobs
method (#26437) - Cached
distinct
validation rule data (#26509) - Improved DNS Prefetching in view files (#26552)
v5.7.13 (2018-11-07)
Added
- Added ability to return an array of messages in a custom validation rule (#26327)
- Added
whenEmpty
/whenNotEmpty
/unlessEmpty
/unlessNotEmpty
methods toCollection
(#26345) - Added
Illuminate\Support\Collection::some
method (#26376, 8f7e647) - Added
Illuminate\Cache\Repository::missing
method (#26351) - Added
Macroable
trait toIlluminate\View\Factory
(#26361) - Added support for UNION aggregate queries (#26365)
Changed
- Updated
AbstractPaginator::appends
to handle null (#26326) - Added "guzzlehttp/guzzle": "^6.3", to
composer.json
(#26328) - Showed exception message on 403 error page when message is available (#26356)
- Don't run TransformsRequest twice on ?query= parameters (#26366)
- Added missing logging options to slack log driver (#26360)
- Use cascade when truncating table in PostgreSQL (#26389)
- Allowed pass absolute parameter in has valid signature request macro (#26397)
Changed realization
- Used
Request::validate
macro in Auth traits (#26314)
v5.7.12 (2018-10-30)
Added
- Added
CacheManager::forgetDriver
method (#26264, fd9ef49) - Added
Illuminate\Foundation\Http\Kernel::getMiddlewareGroups
method (#26268) - Added an sqlite config option (
foreign_key_constraints
) to enable / disable foreign key constraints (#26298, 674f8be, #26306)
Fixed
- Checked
$absolute
parameter inUrlGenerator::signedRoute
(#26265) - Fixed error in resource building after running
php artisan preset none
command (41becda, #26244) - Fixed
whereDoesntHave()
anddoesntHave()
with nested relationships (#26228) - Fixed filesystem locking hangs in
PackageManifest::build()
(#26254)
Changed
- Made expectation closure optional for
InteractsWithContainer::mock
andInteractsWithContainer::spy
(#26242) - Allowed multiple
createPayloadCallback
on queues (#26250, 6e3d568) - Changed wording on default 403 view (#26258)
- Bump
vue.js
to^2.5.17
inartisan preset vue
command (89f56bf, #26244) - Allowed adding additional
$manyMethods
when extending the model class (#26307)
v5.7.11 (2018-10-24)
Added
- Added
decimal:<num>
cast to Model (#26173) - Allowed updateExistingPivot to receive an arrayable item (#26167)
- Added
setIntendedUrl
method toRouting/Redirector.php
(#26227) - Added
ORA-03114
string toDetectsLostConnections
trait (#26233)
Fixed
- Fixed an issue where the worker process would not be killed by the listener when the timeout is exceeded (#25981)
Changed
v5.7.10 (2018-10-23)
Added
- Added loadCount method to eloquent collections (#25997)
- Added support for identity columns in PostgreSQL 10+ (#26096)
- Allowed passing a model instance directly to
assertSoftDeleted
method inFoundation/Testing/Concerns/InteractsWithDatabase.php
(#26133 , #26148) - Added possibility to define exclude methods on registered
apiResource
(#26149) - Added
filp/whoops
tosuggest
incomposer.json
(#26180) - Added
mock
andspy
methods toFoundation/Testing/Concerns/InteractsWithContainer.php
(#26171, b50f9f3) - Added
uuid
validation rule to validator (#26135) - NotificationFake can assert preferred locale (#26205)
Fixed
- Fixed
whereHas
and$withCount
bindings frompolymorphic relationships
(#26145) - Fixed
getTable
method in Model (#26085) - Fixed filesystem locking hangs in
PackageManifest::build()
(#26010, 98b8256) - Fixed
Illuminate/Http/Testing/File.php
for Symfony 4.1 components (#26080) - Fixed URL in
Notifications/resources/views/email.blade.php
(22ca105) - Fixed
hasValidSignature
method when someone send anull
signature inUrlGenerator.php
(#26132) - Fixed autocomplete for container in ServiceProvider for cases when someone developed packages (#26063)
- Fixed
ColumnDefinition::default
typehint (#26041)
Changed
- Define mix as const in
react-stubs/webpack.mix.js
andvue-stubs/webpack.mix.js
presets (#26119) - Make
assertSessionHasNoErrors
inTestResponse.php
print the unexpected errors (#26039, e6bdf8a) - Replaced the remaining occurrences of
newQuery()
tonewModelQuery()
in UPDATE/DELETE queries. (#26158) - Improved
findOrFail()
exceptions inBelongsToMany.php
andHasManyThrough.php
relations (#26182)
Changed realization
- Reversed ternary condition in
Arr::wrap
to make it clearer (#26150) - Simplified
formatAction
inUrlGenerator.php
(#26121) - Simplified
isChainOfObjects
method inSupport/Testing/Fakes/QueueFake.php
(#26151) - Deleted unneeded code (#26053, #26162, #26160, #26159, #26152)
- Prefer stricter comparison (#26139, #26157)
- Removed duplicated code from
Router::updateGroupStack
method (#26206, 6debff6)
v5.7.9 (2018-10-09)
Added
- Support custom user provider names in generator commands (#25681)
- Added 401 Exception view (#26002)
- Added
Categorical imperative
quote toInspiring.php
(#25968) - Mailable
render
method respects[email protected]
property (#25990) - Added some meta data to the notification mails (477273c)
- Added
Macroable
trait toPendingResourceRegistration
(#25947) - Added
assertSessionDoesntHaveErrors
method toTestResponse.php
(#25949, 3005706) - Enable passing options to custom presets (#25930)
Fixed
Changed
- Improved PSR-11 implementation (#25870)
- Changed the sentence of error 403 view from unauthorised to forbidden (#26002)
- Revert email lang template changes (#25963)
- Added model checking in
assertViewHas
(#26012)
Changed realization
- Inline
Arr::pluck()
indata_get()
(#25938)
v5.7.8 (2018-10-04)
Added
- Add
--step
tomigrate:fresh
command (#25897) - Allow
destroy
method inModel
to accept a collection of ids (#25878) - Add AsPivot trait (#25851)
Fixed
- Fixed wrap table for sql server (#25896)
Changed
- Use "optimize:clear" in "app:name" command (#25922)
- Revert of "html string support in translator" (e626ab32a4afec90f80641fbcd00e6b79d15cd3a)
Changed (only realization)
- Simplify code for contextual binding (e2476c1cdfeffd1c4432ec8dc1f733815f70c000)
v5.6.39 (2018-10-04)
Fixed
- Fixed broken email sub-copy template escaping (#25734)
- Fixed required carbon version (394f79f9a6651b103f6e065cb4470b4b347239ea)
- Fixed translation escaping (25858, 4c465007bbf51d7f269871cd76b6d99de7df90bb)
Changed
- Revert of "Patch Blade's
@lang
directive", so it is not escapes HTML tags (0b7b3713e81fe571c244c2cf5d1f5085b6985f96)
Fixed
v5.7.7 (2018-10-02)
Added
- Allow array callables to be passed to Gate::before() (#25817)
- Mail recipient and notifiable can set preferred locale (#25752)
- Always show seeder info (#25872)
- Support JSON UPDATE queries on PostgreSQL (#25797)
- Makes sure changing a database field to JSON does not include a collation (#25741)
- Added Queued Closures (#25777)
- Add the ability to skip algorithm checking (#25468, 5fd4b899cc42d266fab34ee2d5f92fb47ca34fd0)
- Add queue create payload hook (3f68cbe3df82990c69e34309901fcefefdb65c95)
- Authorize Middleware Accept String Parameters (#25763)
Fixed
- Fix
each
method on BelongsToMany relationships (#25832) - Fix prefixed table indexes (#25867)
- Fix
be
method inInteractsWithAuthentication
trait (#25873) - Fixes the error when $resource is null (#25838)
- Attach all disk attachments and not only first one in the
Mail/Mailable.php
(#25793) - Fixed: in case if one job throw exception, than we will proceed to next one (#25820)
Changed
- Trim model class name when passing in
Authorize.php
middleware (#25849) - Improve JSON UPDATE queries on MySQL (#25794)
- Don't print the generated application key (#25802)
- Improve "exists" validation with array values (#25819)
- Only escape trans parameters (98046cb0c81b418fb4046ade034f3d33a4172239)
- Added type check for assertExitCode(0) (#25847)
Changed (only realization)
- Simplify
save
methodMorphOneOrMany
relation (#25864)
v5.7.6 (2018-09-25)
Added
- Support MorphTo eager loading with selected columns (#25662)
- Added possibility to define a complex condition (overwrite
shouldAddXsrfTokenCookie
method) for add cookie to response inMiddleware/VerifyCsrfToken.php
Fixed
- Fixed tag cache clearing when using Redis (#25744)
- Fixed broken email subcopy template escaping (#25723)
- Fixed MethodNotAllowedHTTPException on Intended Redirect (#25739)
Changed
- Use url() function instead of plain url in
views/illustrated-layout.blade.php
(25725)
v5.7.5 (2018-09-20)
Added
- Add callback hook for building mailable data in
\Illuminate\Mail\Mailable
(7dc3d8d35ad8bcd3b18334a44320e3162b9f6dc1)
Fixed
- Make any column searchable with
like
in PostgreSQL (#25698) - Remove trailing newline from hot url in
mix
helper (#25699)
Changed
- Revert of "Remove
Hash::check()
for password verification" (2e78bf472832cd68ef7d80c73dbb722a62ee1429)
Added
- Added restored() and forceDeleted() to observer stub (#40ba2ee)
- Added UploadedFile::getContents() (#24924)
- Added an alias for a single FactoryBuilder state definition (#24937)
Changed
- Allow closure to determine if event should be faked (#24887)
- Update error message for MailFake::assertSent() (#24911)
- Return instance of spy when swapping facade for a Mockery spy (#24918)
- Renamed Mailer::setGlobalTo() to setGlobalToAndRemoveCcAndBcc() to be more clear about what it does (#24917)
- Update the font path used in frontend stub (#24926)
Fixed
Added
- Added assertSessionHasNoErrors() test helper (#24308)
- Added support for defining and enforcing a Spatial reference system for a Point column (#24320)
- Added Builder::whereJsonDoesntContain() and Builder::orWhereJsonDoesntContain() (#24367)
- Added Queueable, SerializesModels to all notification events (#24368)
- Allow callable array syntax in route definition (#24385)
- Added JSON SELECT queries to SQL Server (#24397)
Changed
- Optimize query builder's
pluck()
method (#23482) - Allow passing object instances regardless of the parameter name to method injection (#24234)
- Extract setting mutated attribute into method (#24307)
- Let apiResource support except option (#24319)
- Skip null/empty values in SeeInOrder (#24395)
- Sync Original modal attributes after soft deletion (#24400)
Fixed
Added
- Added
FilesystemManager::forgetDisk()
method (#24057, cbfb4fb) - Added
--allow
parameter todown
command (#24003) - Added more comparison validation rules (
gt
,lt
,gte
,lte
) (#24091, #24135) - Added
TestResponse::assertCookieNotExpired()
method (#24119)
Changed
- Redis connections now implement the
Contracts/Redis/Connection
interface (#24142)
Fixed
- Fixed unsetting request parameters during
HEAD
requests (#24092) - Fixed
HasManyThrough
returning incorrect results withchunk()
(#24096, 5d3d98a) - Fixed
dateBasedWhere()
with raw expressions when using SQLite (#24102) - Fixed
whereYear()
not accepting integers when using SQLite (#24115) - Remove full base URL from generated paths (#24101)
Added
- Added support for MySQL 8 (#23948)
- Added support for custom filesystem drivers URLs (#23964)
- Added more PostgreSQL operators (#23945)
- Added support for JSONP callback when broadcasting using Pusher (#24018, b9ab427)
Changed
- Support chaining using
$this->be()
helper (#23919) - Improved pagination accessibility (#23962)
- Changed response code of
ValidationException
inThrottlesLogins
to429
(#24002) - Throw exception if called command doesn't exist (#23942)
- Made notification email translatable (#23903)
Fixed
Added
- Added helpers for subquery joins (#23818)
Changed
- Allow
PendingResourceRegistration
to be fluently registered (#23890) - Allow asserting an integer with
assertSee*()
(#23892) - Allow passing
Collection
toRule::in()
andRule::notIn()
(#23875)
Fixed
- Lock Carbon version at
1.25.*
(27b8844)
Removed
- Removed form error for password confirmation (#23887)
Added
- Support executing artisan commands using class names (#23764)
- Make
View
macroable (#23787) - Added database
Connection::unsetEventDispatcher()
method (#23832) - Support IAM role session token to be used with SES (#23766)
Changed
- Added displayable value to
required_unless
rule (#23833)
Fixed
- Fixed
RedisQueue::blockingPop()
check when using PhpRedis (#23757)
Added
- Added
view:cache
command (9fd1273, 2ab8acf) - Added
min()
andmax()
to as higher order proxies (#23560) - Added
@elseauth
and@elseguest
Blade directives (#23569) - Added support for hashing configuration (#23573, d6e3ca9)
- Allow tagged cache keys to be incremented/decremented (#23578)
- Added
SeeInOrder
constraint to avoid risky test notices (#23594, ca39449) - Support higher order
groupBy()
(#23608) - Support disabling setting
created_at
in models (#23667) - Added callback support to
optional()
helper (#23688) - Added
Eloquent\Collection::loadMorph()
method (#23626)
Changed
- Support generating a signed route with a
UrlRoutable
parameter (#23584) - Use
DIRECTORY_SEPARATOR
inApplication::environmentFilePath()
(#23596) - Support states on model factory after callbacks (#23551, #23676)
- Use
hash_equals()
for verifying URL signatures (#23618) - Refactored
Exceptions/Handler
(f9162c9, 6c5d971) - Changed status code of
InvalidSignatureException
from401
to403
(#23662, c99911f)
Fixed
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
NotificationFake
if 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)
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
- Fixed clearing the cache without a cache directory (#23538)
Added
- Added
Blueprint::dropMorphs()
(#23431) - Added
Mailable::attachFromStorage()
methods (0fa361d) - Added
orWhere*()
builder methods for day, month and year (#23449)
Changed
- Added
v-pre
to dropdown link inapp.stub
(98fdbb0) - Handle more JSON errors gracefully when
JSON_PARTIAL_OUTPUT_ON_ERROR
is set (#23410, 972b82a) - Add bubble, permission and locking config to single/daily log (#23439)
- Use
Str::contains()
instead ofstr_contains()
(ae4cb28)
Fixed
Added
- Added support for MySQL’s sounds-like operator (#23351)
- Added
ThrottleRequestsException
exception (#23358 - Added
@dump
Blade directive (#23364) - Added
Collection::whereInstanceOfMethod()
(78b5b92) - Added
Dispatchable::dispatchNow()
(#23399)
Changed
- Allow extension of
DatabaseNotification
model attributes (#23337) - Made auth scaffolding translatable (#23342)
- Use
getKeyName()
ingetForeignKey()
(#23362) - Sort
FileSystem
files and directories by name (#23387) - Return validated data from
Validator::validate()
(#23397, 3657d66)
Fixed
- Fixed
serve
command escaping (#23348) - Fixed an issue with multiple select statements in combination with
withCount()
(#23357) - Fixed conditional loading issues (#23369)
- Prevent considering arrays as
callable
while building model factories (#23372) - Move
tightenco/collect
to Composer’sconflict
(#23379) - Set up loop variable correctly on all
Traversable
objects (#23388, 49770ec) - Removed attribute filling from pivot model (#23401)
Added
- Added the ability to set message ID right hand side (#23181)
- Support callbacks as custom log drivers (#23184)
- Added
Blade::include()
method for include aliases (#23172) - Added
broadcastType()
method to notifications (#23236, 4227bd7)
Changed
- Moved clone logic from
FormRequestServiceProvider
toRequest
(b0c2459) - Changed pagination arrow symbols (#23127)
- Update React version in preset (#23134)
- Added an empty error bag when rendering HTTP exception views (#23139)
- Normalized actions when using
route:list
command (#23148) - Updated required Carbon version (201bbec)
- Improved
BadMethodCallException
messages (#23232) - Support date validation rules when comparison has relative time (#23211)
Fixed
- Returns same
Logger
instance fromLogManager
(#23118) - Register missing
hash.driver
DI (#23114) - Fixed an issue with starting two database transactions in tests (#23132)
- Don't replace
tightenco/collect
(#23147, #23153, #23160) - Catch
InvalidFileException
when loading invalid environment file (#23149, 5695079) - Fixed an issue with
assertRedirect()
(#23176) - Fixed dropdown accessibility (#23191)
- Fixed
--force
flag onGeneratorCommand
(#23230)
Removed
Added
- Added Slack attachment pretext attribute (#23075)
Changed
- Added missing nested joins in
Grammar::compileJoins()
(#23059) - Improved session errors assertions in
TestResponse::assertSessionHasErrors()
(#23055)
Fixed
- Fixed
BelongsToMany
pivot relation wakeup (#23081)
Removed
- Removed monolog configurator (#23078)
General
- ⚠️ Upgraded to Symfony 4 (#22450)
- ⚠️ Upgraded to Bootstrap 4 (#22754, #22494, 25559cd, 12d789d)
- ⚠️ Added
runningUnitTests()
toApplication
contract (#21034) - ⚠️ Upgraded
cron-expression
to2.x
(#21637)
Artisan Console
- ⚠️ Removed deprecated
optimize
command (#20851) - Show job id in
queue:work
output (#21204) - Show batch number in
migrate:status
output (#21391) - ⚠️ Added
$outputBuffer
argument tocall()
method in contracts (#22463) - Added
--realpath
argument to migration commands (#22852, 98842da) - Added
--api
argument tomake:controller
(#22996, dcc6123)
Authentication
- Support customizing the mail message building in
ResetPassword::toMail()
(6535186) - Added
AuthServiceProvider::policies()
method (6d8e530)
Blade Templates
- Added
@csrf
and@method
directives (5f19844, #22912) - Added
Blade::component()
method for component aliases (#22796, 7c3ba0e) - ⚠️ Made double encoding the default (7c82ff4)
Broadcasting
Cache
- Removed
$decayMinutes
argument fromRateLimiter::tooManyAttempts()
(#22202)
Collections
- ⚠️ Fixed keyless calls to
uniqueStrict()
(#21854) - Added operator support to
[email protected]()
(#22380) - Improve performance of
Collection::mapToDictionary()
(#22774, c09a0fd) - Accept array of keys on
Collection::except()
(#22814)
Database
- ⚠️ Swap the index order of morph type and id (#21693)
- Added support for PostgreSQL comments (#21855, #22453)
- Better enumeration columns support (#22109, 9a3d71d)
- Prevent duplicated table prefix in
SQLiteGrammar::compileColumnListing()
(#22340, #22781) - Support complex
update()
calls when using SQLite (#22366) - Throws an exception if multiple calls to the underlying SQLite method aren't supported (#22364, c877cb0)
- Made
whereTime()
operator argument optional (#22378) - Changed transaction logic in
DatabaseQueue
(#22433) - Added support for row values in where conditions (#22446)
- Fixed serialization of pivot models (#22786, 8fad785, 351e3b7)
- ⚠️ Accept
Throwable
inDetectsLostConnections
(#22948)
Eloquent
- ⚠️ Serialize relationships (#21229)
- Allow setting custom owner key on polymorphic relationships (#21310)
- ⚠️ Sync model after
refresh()
(#21905) - Make
MassAssignmentException
wording clear (#22565) - Changed
HasAttributes::getDateFormat()
visibility topublic
(#22618) - Added
BelongsToMany::getPivotClass()
method (641d087) - Ensure Pivot model's
$dateFormat
is used when creating a pivot record (a433ff8) - Added
BelongsToMany::withPivotValues()
method (#22867) - Added
forceDeleted
event (497a907) - ⚠️ Relocate the existence check for factory definitions to
FactoryBuilder::getRawAttributes()
(#22936) - ⚠️ Change
Resource
name away from soft-reserved name (#22969, aad6089) - Added support for casting to custom date formats (#22989, 1f902c8)
Hashing
Helpers
- ⚠️ Return an empty array from
Arr::wrap()
when called withnull
(#21745) - Return class traits in use order from
class_uses_recursive()
(#22537) - Added
Str::uuid()
andStr::orderedUuid()
(3d39604)
Logging
- ⚠️ Refactored Logging component (#22635, 106ac2a, 7ba0c22, 03f870c, e691230)
- Use application name as syslog identifier (#22267)
- ⚠️ Added
$data
property to mail events (#21804) - ⚠️ Call message сustomization callbacks before building content/attachments (#22995)
- Added support for setting HTML in emails (#22809)
Notifications
- Pass notification instance to
routeNotificationFor*()
methods (#22289)
Queues
- ⚠️ Added
payload()
andgetJobId()
toJob
contract (#21303) - Removed unused
Worker::raiseFailedJobEvent()
method (#21901) - Support blocking pop from Redis queues (#22284, dbad055, 5923416)
Requests
- ⚠️ Return
false
fromexpectsJson()
when requested content type isn't explicit (#22506, 3624d27) - Added
Request::getSession()
method (e546a5b) - Accept array of keys on
Request::hasAny()
(#22952)
Responses
- Added missing
$raw
and$sameSite
parameters toCookie\Factory
methods (#21553) - ⚠️ Return
201
status if Model was recently created (#21625) - Set original response JSON responses (#22455)
- Added
streamDownload()
method (#22777) - ⚠️ Allow insecure cookies when
session.secure
istrue
(#22812)
Routing
- Added
SetCacheHeaders
middleware (#22389, f6f386b, df06357) - Support pulling rate limit from the user instance in
ThrottleRequests
(c9e6100)
Service Container
Session
- Support dot notation in
Session::exists()
(#22935)
Support
- ⚠️ Throw exception if
Manager::driver()
is called withnull
(#22018) - ⚠️ Added
hasCommandHandler()
,getCommandHandler()
andmap()
toBus\Dispatcher
contract (#22958, #22986) - Added
useBootstrapThree()
helper to paginators (c919402)
Task Scheduling
Testing
- ⚠️ Switched to PHPUnit 7 (#23005)
- Support fetching specific key when using json helpers (#22489)
- Use
DatabaseTransactions
trait inRefreshDatabase
(#22596) - Added
assertSeeInOrder()
andassertSeeTextInOrder()
methods (#22915, #23038)
Validation
Added
- Added
Model::qualifyColumn()
method (#22577) - Added support for the
author_*
fields toSlackAttachment
(#22610) - Added
UrlGenerator::getDefaultParameters()
method (#22572) - Added option to double encode escaped strings (61f8477)
- Added
BladeCompiler::doubleEncode()
method (1cc96a1) - Added support for nested keys to
TestResponse::assertJsonCount()
(#22740) - Added
s3://
to protocol to URL validation (#22752) - Added option to disable wrapping migrations in transaction (#22757)
Changed
- Use
Arr::get()
inCollection::get()
(#22554) - Pass entire config to
FtpAdapter
(#22539) - Support extending Eloquent relationships (#22617)
- Improved handling of
VerifyCsrfToken::$except
values (#22619, #22661) - Support multiple levels in
Collection::groupBy()
(#22630) - Clear user instance in
RequestGuard::setRequest()
(#22649) - Allow StudlyCase and snake_case migration names (#22648)
- Set
null
as default value foroptional()
helper (#22699) - Make sure
getRememberToken()
returns a string (#22724) - Updated Vue preset version (#22732)
- Accept
Arrayable
items inCollection::find()
(#22787)
Fixed
- Close database connection when using
RefreshDatabase
trait (#22569) - Send status code
500
when usingdd()
(#22581) - Fixed parameter usage in
RedirectController
(#22657) - Added
__set_state()
method toSupport/Carbon
(#22689) - Do not continue checking
APP_ENV
if environment file path being set successfully with--env
option (#22753) - Fixed missing table prefix in
SQLiteGrammar::compileDropColumn()
(#22745, c13322c) - Fixed prefixing in
SQLiteGrammar::compileColumnListing()
(#22781)
Added
- Support passing collections to
Collection::except()
(#22399) - Made
Command
class macroable (#22426, #22434) - Added
ProcessUtils
class for command argument escaping (#22448) - Added array support to
Optional
helper class (#22417)
Changed
- Added "cattle" as an uncountable word (#22415)
- Added
Dispatcher
contract onNotificationFake
and return fake object fromNotification::fake()
(#22396) - Only add value as query binding if it isn't an
Expression
(#22451)
Fixed
Added
- Added support for Flysystem caching (#22310, 0657496)
- Added support for
year
data type (#22377) - Added support for setting Whoops debug editor (#22350, c6e3a73)
Changed
- Use
Model::newQueryWithoutRelationships()
inCollection::load()
(#22363) - Respect
schema
config inPostgresBuilder
(#22365, de561cb)
Fixed
- Fixed SQS queue driver for PHP 7.2 (#22374)
Added
- Added a
Collection::firstWhere()
method (#22261, #22264) - Added several accessors to
BelongsToMany
(f09ea98, cbe8123, 3bcf9d1)
Changed
- Pass test value to
Collection::when()
callbacks (#22224) - Support worker sleep time of less than 1s (#22246, #22255)
- Detect persistent connection resets (#22277)
- Support chaining seeders (#22288)
Fixed
- Fixed negative comparison to objects in
Collection::where()
(#22256) - Fixed comparing strings with objects that can be casted to string in
Collection::where()
(#22295) - Fixed integer validation using
distinct:ignore_case
(#22235) - Fixes building nested JSON accessors in
MySqlGrammar
(#22254) - Remove
SELECT
bindings from MySQL delete statements (#22285)
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)
Added
- Added
TestResponse::assertJsonMissingExact()
(#21881) - Added
assertValidationErrors()
andassertJsonCount()
toTestResponse
(#21917) - Added
allOnQueue()
andallOnConnection()
for job chaining (#21765) - Support variadic arguments on fluent
Route::middleware()
(#21930) - Added precision to
Blueprint::time()
(#21936) - Added
Router::apiResources()
method (#21956) - Support graceful handling of
SIGTERM
in queue workers (#21964)
Changed
- Added "kin" as an uncountable word (#21843)
- Improved geo spatial support (#21919)
- Include job name in the
MaxAttemptsExcededException
(#21941, #21943) - Support rendering multiple
@verbatim
and@php
blocks (#21900) - Moved
InteractsWithRedis
toIlluminate\Foundation\Testing
(#21967) - Don't bind macro when it is not a
Closure
(#21980) - Check for
before()
method on policies classes (#21989) - Detect lost pgbouncer connections (#21988)
Fixed
- Fixed
BroadcastController
namespace issue (#21844) - Fixed eager loading
HasManyThrough
relations with custom intermediate and local key (#21902) - Use table aliases when calling self-referencing
HasManyThrough
relation (#21883) - Fixed Vue component file name in React present (#21945)
- Reverted changes to
BadMethodException
in #20196 (#21929)
Added
- Added
MakesHttpRequests::followingRedirects()
method (#21771) - Added
MakesHttpRequests::from()
method (#21788) - Added
notifyNow()
method to notifiables (#21795) - Added
TestResponse::assertCookieExpired()
method (#21793) - Added
TestResponse::assertCookieMissing()
method (#21803)
Changed
- Allow the distinct validation rule to optionally ignore case (#21757)
Fixed
Added
- Made
Redirector
macroable (#21714)
Changed
- Prevent reloading default relationships while lazy eager-loading (#21710)
- Don't reload pivot relationship on refresh (#21713)
- Unify Vue.js preset (#21711, #21724)
- Revert multibyte functions in
Str
(#21722) - Remove hardcoded fields in DatabaseUserProvider (#21749)
Fixed
- Don't recreate the SQLite database file in
refreshDatabaseFile()
(#21720)
Added
- Added missing PostgreSQL network address operators (#21518)
- Added raw and same-site parameters to
cookie()
helper (#21551) - Added option to create pivot model to
make:model
command (#21549) - Added support for a
failed()
method to mailables and notifications (#21585) - Added
__toString
onViewErrorBag
(#21605) - Support higher order call of
keyBy()
(#21606) - Generate
@else*
directives forBlade::if()
(#21611) - Made
Response
andJsonResponse
macroable (#21669)
Changed
- Escape HTML characters in
@json
directive (#21574) - Only accept strings in
Session::flash()
(#21576) - Use message from
AuthenticationException
inHandler::unauthenticated()
(#21575) - Don't use global scope while touching parent timestamp (#21604)
- Accept multiple middleware when defining middleware fluently (#21621)
- Bind
true
as1
while preparing an SQL statement (#21623) - Ensure config load order across multiple installations (#21634)
- Pass previous exception to
AccessDeniedHttpException
andHttpException
(#21645) - Unify Bootstrap preset (#21686, #21685)
Fixed
Added
- Allow testing anonymous notifiables (#21379)
- Add relation and model attributes on
RelationNotFoundException
(#21426) - Allow passing a callback to
with()
(#21445) - Added
PotentiallyMissing
interface toMissingValue
class (be7dccc) - Accept
$queue
name onSchedule::job()
(#21473) - Added callback and default parameter
whenLoaded()
method (#21490) - Allow marking notifications as unread (#21497)
- Added
Collection::mapToDictionary()
method (#21505) - Added
make:exception
command (#21483)
Changed
- Reset RefreshDatabaseState after DatabaseMigrations rolls back (#21325)
- Make sure page resolver returns an integer (#21378)
- Allow single error messages in
ValidationException::withMessages()
(#21400) - Revert
Collection::sortBy()
behaviour to 5.4 (#21382) - Use fill instead of forceFill while storing pivot attributes (#21403)
- Alphabetize
vendor:publish
options (#21412) - Extract
AnonymousResourceCollection
into class to allow serialization (#21456) - Extract some methods from
Resource
intoConditionallyLoadsAttributes
trait (28d945e, 1f37ccc)
Fixed
- Ensure user is logged in before expecting user instance (#21377)
- Remove leading slash from class while resolving controllers (#21407)
- Make sure SQL for virtual columns is added after the unsigned modifier (#21441)
- Fixed
Collection::contains()
when the found value isnull
(#21442) - Fixed merge issue in
Relation::morphMap()
(#21458) - Clear count query select bindings in
Relation::getRelationExistenceCountQuery()
(#21468) - Fixed user model type hints policy stub (#21499)
Added
- Added optional config option for whoops blacklist (#21336, a83ebc1)
- Added
Collection::pad()
method (#21342)
Changed
- Made
$callback
parameter ofArr::sort()
optional (#21337) - Support setting custom
REMOTE_ADDR
inMakesHttpRequests
(#21351) - Changed visibility of
$output
to public on console events (#21356)
Fixed
Added
- Added
Route::respondWithRoute($name)
method (#21299, 66c5e46) - Added
$strict
parameter toTestResponse::assertJson()
(#21301)
Changed
- Added "firmware" as an uncountable word (#21306)
- Allow
MorphTo::associate()
acceptnull
(#21318) - Changed
__()
signature to matchTranslation::trans()
(10c013c)
Fixed
- Add missing
driver
parameter to doctrine connection (#21297)
Security
- Perform constant-time token comparison in
DatabaseUserProvider
(#21320)
Fixed
- Fixed issue with routes sorting (https://github.com/laravel/framework/pull/21261)
Added
- Added
:input
placeholder in validation error messages (#21175) - Added
@includeFirst
Blade directive (#21172) - Allow setting column styles for tables in Artisan commands (#21169)
- Added
ValidatesRequests::extractInputFromRules()
method (#21192) - Added
-m
shortcut tomake:factory
(#21219) - Added ability to set a fallback (catch-all) route (#21234)
Changed
- Support
null
onModel::UPDATED_AT
(#21178) - Render views from config while building error views (#21145)
- Use multibyte functions in some
Str
methods (#21207) - Perform stable sort in
Collection::sortBy()
(#21214)
Fixed
Added
- Added
Blueprint::spatialIndex()
method (#21070) - Added support for SQL Server's
TransactionIsolation
DSN key (#21069) - Added
ManagesFrequencies::everyFifteenMinutes()
method (#21092) - Added
Mailable::hasReplyTo()
method (#21093) - Added
MailMessage::template()
method (#21154) - Added support for Rackspace to
Storage::url()
(#21157) - Added support to use sub-queries as a where condition on a join clause (#21008)
Changed
- Return
null
fromRoute::getAction()
if$key
is not found (#21083) - Restore non-static signature of
Router::prepareResponse()
(#21114, e1a1265) - Removed
Model
type hint fromModel::isNot()
(4d8f0a1) - Prefer
Jsonable
overArrayable
inJsonResponse::setData()
(#21136) - Reset
cc
andbcc
inMailer::setGlobalTo()
(#21137) - Avoid trace
args
in JSON exceptions (#21149)
Fixed
- Fixed
@json
directive parameter logic (2a25ee7) - Fixed a problem with
withoutExceptionHandling()
when called more than once (#21086) - Added a
compileForeign()
method toPostgresGrammar
(#21038) - Reset the index after a
MissingValue
while resolving resource (#21127) - Fixed
getQualifiedParentKey()
onBelongsToMany
relationships (#21128) - Fixed parameters on
Route::view()
when usingwhere()
(#21113) - Show real directory name in the exception message thrown by
PackageManifest
(#21099) - Fixed undefined offset error when refreshing a database collection (#21159)
Added
- Added
$action
parameter toRoute::getAction()
for simpler access (#20975) - Added
@json
blade directive (#21004) - Added
rescue()
helper (#21010, 74ecb34, c4d1c47) - Support commas in
In
andNotIn
parameters (#21012, 3c3c5e4) - Added
RedisManager::connections()
method (#21014, 1deaaa9) - Added exception class to JSON exceptions (#21043)
- Added
Gate::policies()
method (#21036) - Added geo spatial blueprint methods (#21056)
Changed
- Fixed migrations not being run in batch order (#20986)
- Flush application resources on teardown (#21022)
- Catch errors while building exception context (#21047)
- Return
$this
fromValidator::setCustomMessages()
(#21046)
Fixed
- Make
Request::validate()
return the value of parent key (#20974) - Fixed date comparison validators failing when a format is specified (#20940)
- Fixed login throttling failing when
decayMinutes
is more than1
(#20997) - Only use reflection on classes in
Kernel::load()
(#20998) - Specify lower case
column_name
inMySqlGrammar::compileColumnListing()
(#21037) - Fixed eager loading problem with
BelongsToMany
(#21044)
Removed
Added
- Added
mov
extension andMimeType::search()
method (#20917) - Added support for
dont-discover
in packages (#20921, 4a6f1f2) - Added
retrieved
model event (#20852, 84291a6) - Added
HasOneOrMany::setForeignAttributesForCreate()
method (#20871) - Made
Route
macroable (#20970)
Changed
- Load deferred providers before commands (366c50e)
- Don't pass cache instance to Schedule anymore (#20916, #20933)
- Simplified
mix
require (#20929) - Return
null
if resource attribute contains relation with a null value (#20969)
Fixed
- Prevent
ErrorException
inCollection::operatorForWhere()
method (#20913) - Create default console input/output in
Application::run()
(#20922, 7647399) - Ignore abstract classes in
Kernel::load()
(#20931) - Fixed
listener-queued-duck.stub
filename (#20937) - Fixed faking notification sending while using AnonymousNotifiable (#20965)
- Fixed
eachSpread()
andmapSpread()
with nested collections (#20962) - Fixed generating names for classes beginning with slash (#20961)
Added
- Added getter methods on
MimeType
(#20826)
Changed
- Moved console commands auto discovery to
Kernel::bootstrap()
(#20863) - Use classes instead of helper functions (#20879, #20880)
- Changed
Resource::$collects
visibility topublic
(#20885)
Fixed
- Fixed
choice()
on non-tty terminals (#20840) - Fixed Macroable calls on
Optional
(#20845, #20898) - Fixed
dropAllTables()
when usingPDO::FETCH_ASSOC
mode (#20859) - Pass model name to
ModelNotFoundException::setModel()
(#20896, 891f90e) - Fixed
Basic
authentication (#20905) - Fixed
DelegatesToResource::offsetExists()
(#20887)
Removed
- Removed redundant methods from
MorphOneOrMany
(#20837)
General
- ⚠️ Require PHP 7+ (06907a0, 39809ce)
- ⚠️ Removed deprecated
ServiceProvider::compile()
method (10da428) - ⚠️ Removed deprecated
Str::quickRandom()
method (2ef257a) - Removed
build
scripts (7c16b15) - Upgraded to Symfony 3.3 components (4db7031, 67a5367)
- Throw
RuntimeException
when app key is missing (#19145, 8adbaa7)
Artisan Console
- Added interactive prompt to
vendor:publish
(#18230) - Added
migrate:fresh
command (f6511d4, #20090) - Added
make:factory
command and added--factory
tomake:model
(a6ffd8b, #19985) - Added
make:rule
command (76853fd) - ⚠️ Added
runningInConsole()
methodApplication
contract (#18658) - Support default value(s) on command arguments (#18572)
- Improved CLI detection for phpdbg (#18781)
- ⚠️ Always return array from
RetryCommand::getJobIds()
(#19232) - Support passing absolute paths to
make::listener
(#19660) - ⚠️ Use
handle()
method instead offire()
(#19827, #19839, #20024) - Try to guess the
--create
option when generation migrations (#20032) - Generate
make:policy
with real user model namespace (#20047) - Added
Kernel::load()
to auto register a directory of commands (2e7ddca, d607b9c) - ⚠️ Removed
array
type hint fromCommand::table()
(#20120) - Support loading multiple paths in
Kernel::load()
(#20251, #20595) - Added
CommandStarting
andCommandFinished
events (#20298) - Show error message if a reverted migration is not found (#20499, a895b1e)
- Set correct namespace in model factories when using the
app:name
command (#20766) - ⚠️ Switched the
-f
shortcut from--force
to--factory
onmake:model
command (#20800)
Assets
- Added frontend preset commands (463b769, too many follow-up commits)
Authentication
- ⚠️ Support default user providers and pass user provider to
RequestGuard
(#18856) - Made the user provider parameter on
RequestGuard
optional (d7f0b26) - Use
setRememberToken()
inResetsPasswords
(#19189) - Added a
PasswordReset
event (#19188) - ⚠️ Support multiword models in
authorizeResource()
(#19821) - Added support for no user provider in
CreatesUserProviders
(4feb847)
Authorization
- Support multiple values in
Gate::has()
(#18758) - ⚠️ Prevent policies from being too greedy (#19120)
- ⚠️ Added
abilities()
method toGate
contract (#19173) - ⚠️ Implement
iterable
onGate::check()
andGate::any()
(#20084)
Blade Templates
- Added
Blade::if()
method (71dfe0f, 2905364, #20025) - Added
@switch
,@case
,@break
and@default
directives (#19758) - ⚠️ Prevent Blade from parsing PHP code inside
@php
blocks (#20065)
Broadcasting
- ⚠️ Use
AccessDeniedHttpException
instead ifHttpException
(#19611) - ⚠️ Upgraded to Pusher SDK v3 (#20016)
Cache
- ⚠️ PSR-16 compliance (#20194)
- Don't encrypt database cache values (f0c72ec)
- Added support cache locks (4e6b2e4, 045e6f2, #19669)
- Accept
DatetimeInterface
andDateInterval
in cache repository (#20034) - Added
getStore()
method to cacheRepository
interface (#20338) - ⚠️ Made
RateLimiter
less aggressive (#20759)
Collections
- Support multiple values in
Collection::has()
(#18758) - Added
Collection::mapInto()
method (2642ac7) - Added
Collection::dd()
method (f5fafad) - Added
Collection::dump()
method (#19755) - Added
wrap()
andunwrap()
methods (#20055, #20068) - Added keys to
partition()
,eachSpread()
andmapSpread
callback (#20783, #20723)
Configuration
- Added
Config::getMany()
method (#19770)
Controllers
Database
- ⚠️ Added
dropAllTables()
to schema builder (#18484, d910bc8, #19644, #19645, #20239, #20536) - Added precision to
dateTime
andtimestamp
column types (#18847, f85f6db, #18962, #20464) - Pass page number to
chunk()
callback (#19316) - Improve memory usage in
chunk()
andchunkById()
(#19345, #19369, #19368) - Fixed
compileColumnListing()
when using PostgreSQL with multiple schemas (#19553) - Allow the seeder to call multiple commands at once (#19912)
- Added pgpool message to
DetectsLostConnections
(#20418) - Prevent race conditions on replicated databases (#20445, 0ec1522, 3824a36)
- ⚠️ Support sticky database connections (#20746)
Eloquent ORM
- Added API resources (#20710, too many follow-up commits)
- ⚠️ Indicate soft deleted models as existing (#17613)
- ⚠️ Added
$localKey
parameter toHasRelationships::belongsToMany()
andBelongsToMany
(#17903, 7c7c3bc) - ⚠️ Added
$parentKey
parameter tobelongsToMany()
,BelongsToMany
andMorphToMany
(#17915, #18380) - ⚠️ Renamed
$parent
property to$pivotParent
inPivot
class (#17933, #18150) - ⚠️ Don't add
_count
suffix to column name when usingwithCount()
with an alias (#17871) - ⚠️ Renamed
$events
to$dispatchesEvents
(#17961, b6472bf, 3dbe12f) - ⚠️ Only return query builder when the result is null for
callScope()
(#18845) - Allow setting a factory's attribute to a factory instance (#18879)
- Support
null
comparison inModel::is()
(#18511) - Added
getDirty()
checks for date and castable attributes (#18400, e180e20) - Show method name in invalid relationship
LogicException
(#18749) - Add support for additional values in
firstOrCreate()
andfirstOrNew()
(#18878) - Added a second local key to
HasManyThrough
(#19114) - Respect casts declaration on custom pivot models (#19335)
- Support creating relations without attributes (#19506)
- Added
Model::only()
method (#19459) - ⚠️ Support model serialization on non default connection (#19521, dd45f70)
- ⚠️ Support updating nullable dates (#19672)
- ⚠️ Make pivot model instantiable (#20179)
- Simplified
BelongsToMany::allRelatedIds()
logic (#20189) - Added
Relation::get()
method (#20052) - Added
hasChanges()
,wasChanged()
,getChanges()
andsyncChanges()
(#20129, #20130) - Better exception message when calling non existing methods on models (#20196, 91c1f03)
- Added support for connections on model factories (#20191)
- Check for real primary key in
Pivot
methods (8d82618) - Default
$attributes
onBelongsToMany::create()
to empty array (973bff4) - Add ability to set a custom pivot accessor (#20411)
- ⚠️ Call
setConnection()
inModel::save()
(#20466) - ⚠️ Touch parent timestamp only if the model is dirty (#20489)
- Added
Model::loadMissing()
method (#20630, 4166c12) - Added
Model::whereKeyNot()
method (#20817)
Encryption
- Use
openssl_cipher_iv_length()
inEncrypter
(#18684) - Added
Encrypter::generateKey()
method (6623996) - Use
json_last_error()
inEncrypter
(#20099)
Errors & Logging
- Added default 404, 419 and 500 error pages (#18483, 4d8c2c1)
- ⚠️ Always show custom 500 error page for all exception types when not in debug mode (#18481, 3cb7b0f)
- ⚠️ Show 419 error page on
TokenMismatchException
(#18728) - Support
render()
method on exceptions (ed51160, c8a9413) - Support
report()
method on exceptions (e77f6f7) - ⚠️ Send exceptions as JSON in debug mode if the request wants JSON (5225389, #18732, 4fe6091, 9ab58fd, #19333)
- ⚠️ Moved exceptions from
$dontReport
into$internalDontReport
(841b36c) - Added
Handler::context()
method, that by default adds some default context to logs (23b7d6b) - ⚠️ Don't set formatter on
ErrorLogHandler
(a044f17) - Use whoops for errors (b697272, f6b67d4, #19471, #20412)
- Changed how exceptions are logged (#19698, f1971c2)
- ⚠️ Return
HttpException
with code413
fromPostTooLargeException
(#19773) - Support custom logger channel names (#20133)
- ⚠️ Unify exception formatting (#20173, #20067, #20167, too many follow-up commits, sorry)
- Added default
Handler::unauthenticated()
method (11b0de0)
Events
- ⚠️ Removed calling queue method on handlers (0360cb1, ec96979, d9be4bf)
- Allow faking only specific events (#19429)
- Support self-registering event listeners (#19917, 4d557c5, #19962, 5ed4f50)
- Added ability to determine if queued handler should be pushed to queue (#19957, efe616c)
Filesystem
- ⚠️ Made
Storage::files()
work likeStorage::allFiles()
(#18874, 7073457) - ⚠️ Fixed compatibility between
FilesystemAdapter
and theFilesystem
interface (#19389)
Helpers
- Added
report()
helper (2b67619) - Added
throw_if()
andthrow_unless()
helpers (18bb4df, #19166, #19255) - Added
dispatch_now()
helper (#18668, 61f2e7b) - Added
$language
parameter tostr_slug()
helper (#19011) - Added
str_before()
helper (#19940, #20049) - Added
now()
andtoday()
helpers (3c888b6, #20716) - Added
blank()
,filled()
,optional()
andtransform()
helpers (06de9b2, 31308e3) - Handle lower case words better in as
Str::snake()
(#18764) - Removed usages of the
with()
helper (#17888) - Support multiple patterns in
Str::is()
(#20108) - Speed up
Arr::get()
calls without dot notations (#20139) - Use
report()
helper inmix()
(#20603, bf0cb82)
Localization
- ⚠️ Moved
LoaderInterface
to contracts (#20460) - ⚠️ Support loading JSON translation for packages (#20599, 573f85c)
- Support language specific characters in
Str
(#18974, #19694)
- Allow mailables to be rendered directly to views (d9a6dfa)
- Allow for per-mailable theme configuration (b2c35ca)
- ⚠️ Removed
$data
and$callback
parameters fromMailer
andMailQueue
- ⚠️ Made
Markdown
a dependency ofMailChannel
(#19349) - ⚠️ Upgraded to SwiftMailer 6 (#19356)
- ⚠️ Added
to()
andbcc()
toMailer
contract (#19955)
Notifications
- Added methods for Slack's
thumb_url
andunfurl_*
options (#19150, #19200) - Support sending notifications via
AnonymousNotifiable
(#19998, ba82579) - Accept other types on
SlackAttachment::timestamp()
(#20671)
Queues
- Added support for chainable jobs (81bcb03, too many follow-up commits, sorry)
- ⚠️ Removed redundant
$queue
parameter fromQueue::createPayload()
(#17948) - Made all
getQueue()
methodspublic
(#18501) - Pass connection and queue to
Looping
event (#19081) - ⚠️ Clone Job specific properties (#19123)
- ⚠️ Declare missing abstract
Job::getRawBody()
method (#19677) - ⚠️ Fail (or optionally silently delete) job when model is missing during deserialization (44b1f85, bceded6)
- Added
CallQueuedListener::__clone()
method (#20022) - Accept
DatetimeInterface
andDateInterval
in queue (#20102, 92e2aff) - ⚠️ Use
dispatch()
instead offire()
(#20446) - Removed
reserved_at
index from jobs table stub (#20702) - Support job expiration (#20776, 1592b9b)
Redis
- ⚠️ Several improvements on
PhpRedisConnection
(#20269, #20316) - ⚠️ Removed
PhpRedisConnection::proxyToEval()
method (#17360) - Added Redis limiters (#20597, ceb260e, #20761, aba76bf, 3684f0c, #20772)
Requests
- ⚠️ Made
Request::has()
work likeCollection::has()
(#18715) - Added
Request::filled()
(#18715) - ⚠️ Made
Request::only()
work likeCollection::only()
(#18695) - Aliased
Request::exists()
toRequest::has()
(183bf16) - Allow passing keys to
Request::all()
to behave like oldRequest::only()
(#18754) - ⚠️ Removed
Request::intersect()
(#18695) - Return request data from
ValidatesRequests
calls (#19033) - Added a
validate()
macro ontoRequest
(#19063) - Added
FormRequest::validated()
method (#19112) - ⚠️ Made
request()
helper andRequest::__get()
consistent (a6ff272) - Made
Request::routeIs()
work likeRequest()::fullUrlIs()
(#19267, bfc5321, #19334) - Added
Request::hasAny()
method (#19367) - ⚠️ Throw validation exception from
ValidatesRequests
without formatting response (#19929, 6d33675, ec88362, c264807) - Added
Request::post()
method (#20238) - Added
Request::keys()
method (#20611)
Routing
- Support fluent resource options (#18767, bb02fb2)
- Support multiple values in
Router::has()
(#18758) - ⚠️ Bind empty optional route parameter to
null
instead of empty model instance (#17521) - Accept patterns on
Route::named()
,Router::is()
andRouter::currentRouteNamed()
(#19267, bfc5321) - Added
domain()
setter/getter toRoute
(#19245, bba04a1) - Added
Route::redirect()
method (#19794) - Added
Route::view()
method (#19835) - ⚠️ Improved
ThrottleRequests
middleware (#19807, #19860) - ⚠️ Return proper 304 responses (#19867)
- Return the resource from
Router::apiResource()
(#20029) - ⚠️ Moved route model binding resolution logic to model (#20521, 370e626, #20542, #20618, d911fa8)
- Accept string on
parameters()
andnames()
methods (#20531, #20529) - Handle
HEAD
requests inRouter::view()
(#20672) - Added
ThrottleRequestsWithRedis
middleware (#20761, 0a10f9a)
Responses
- ⚠️ Ensure
Arrayable
andJsonable
return aJsonResponse
(#17875) - ⚠️ Ensure
Arrayable
objects are also morphed byResponse
(#17868) - Added
SameSite
support toCookieJar
(#18040, #18059, e69d722) - Accept
HeaderBag
inResponseTrait::withHeaders()
(#18161) - ⚠️ Reset response content-type in
Response::setContent()
(#18314, #20313) - ⚠️ Always retrieve the real original content (#20002)
Service Container
- ⚠️ Refactored
Container
(#19201) - ⚠️ Made container PSR-11 compliant (#19822, a6068b0, 66325c2)
- Return the bound instance from
Container::instance()
(#19442) - ⚠️ Use instance instead of deferred service provider (#20714)
Session
- ⚠️ Default value to
true
inStore::flash()
(#18136) - ⚠️ Store the user password hash when logging in (#19843)
- ⚠️ Throw
UnauthorizedHttpException
fromfailedBasicResponse
(#20673)
Support
- Autoload package providers (#19420, a5a0f3e, 2954091, #19455, #19561, #19646)
- Added support for
Responsable
objects (c0c89fd, 1229b7f, #19614, ef0e37d) - Made
Carbon
macroable and serializeable (#19771, #20568, 6a18209) - Support registering macros using classes (#19782, 353adbd)
- ⚠️ Moved
InteractsWithTime
toIlluminate\Support
(#20119, #20206) - Support callable/invokable objects in
Pipeline
(#18264) - ⚠️ Prevent access to protected properties using array access on
Model
andFluent
(#18403) - ⚠️ Extend
MessageBag
interface fromArrayable
and addgetMessages()
method (#19768, #20334) - Handle
Arrayable
items inMessageBag
(6f1f4d8) - Added
isNotEmpty()
method to message bags and paginators (#19944) - Return the collection iterator from
AbstractPaginator::getIterator()
(#20098) - ⚠️ Fixed minimum value of paginator
last_page
field (#20335)
Task Scheduling
- Fire before callbacks on closure-based scheduling events (#18861)
- Run after-callbacks even if a callback event failed (#19573)
- ⚠️ Fixed bug in
quarterly()
method (#19600) - ⚠️ Support passing boolean into
when()
andskip()
(1d1a96e)
Testing
- ⚠️ Switched to PHPUnit 6 (#17755, #17864)
- ⚠️ Renamed authentication assertion methods (#17924, 494a177)
- ⚠️ Unify database testing traits into
RefreshDatabase
trait (79c6f67, 0322e32, #20308) - ⚠️ Changed Blade tests namespace to
Illuminate\Tests\View\Blade
(#19675) - Added integration tests for the framework itself (182027d, #18438, #18780, #19001, #20073)
- Allow disabling of specific middleware (#18673)
- Added
withoutExceptionHandling()
method (a171f44) - Support inline eloquent factory states (#19060)
- Allow
assertSessionHasErrors()
to look into different error bags (#19172, 4287ebc) - Ensure Redis is available in cache lock tests (#19791)
- Skip tests if Memcached is not found (#20018)
- ⚠️ Clear
Carbon
mock during tear down (#19934) - Added debug info to
NotFoundHttpException
inInteractsWithExceptionHandling
(#20000) - Added
MailFake::assertSentTimes()
,QueueFake::assertPushedTimes()
andBusFake::assertDispatchedTimes()
methods (#20485, e657f6e) - Added queue assertions to
MailFake
(#20454, #20701) - Added
assertNothingSent()
andassertSentTimes()
methods toNotificationFake
(#20651) - Added Mockery expectations to the assertion count (#20606)
- Fake the default storage disk by default (#20625)
- Support sending default headers with requests (#20590, c32418e)
- Support disabling of exception handling for specified exceptions (#20729, 2db9716)
Validation
- Added support for custom validation rule objects (#19155, 2aa5ea8)
- Validate against
DateTimeInterface
instead ofDateTime
(#20110) - ⚠️ Made several method in
ValidatesAttributes
public (#20200) - ⚠️ Added
errors()
method toValidator
interface (#20337) - Extend
Exists
andUnique
rule fromDatabaseRule
class (#20563) - Added
whereIn()
andwhereNotIn()
constraints toDatabaseRule
(#20691, #20739, 52d28e3) - Added
date_equals
rule (#20646)
Views
Added
- Added
FilesystemAdapter::path()
method (#20395)
Changed
- Allow
Collection::random()
to return0
items (#20396, #20402) - Accept options on
FilesystemAdapter::temporaryUrl()
(#20394) - Sync
withoutOverlapping
method onEvent
andCallbackEvent
(#20389) - Prevent PHP file uploads by default unless explicitly allowed (#20392, #20400)
- Allow other filesystem adapter to implement
temporaryUrl()
(#20398)
Fixed
- Reverted breaking change on
BelongsToMany::create()
(#20407)
Added
- Added
Blueprint::unsignedDecimal()
method (#20243, 3b4483d, 06dcaaa) - Added
Relation::getMorphedModel()
method (#20244) - Added
Model::isNot()
method (#20354) - Added
FilesystemAdapter::temporaryUrl()
method (#20375, 09cfd7f) - Added
Request::userAgent()
method (#20367)
Changed
- Renamed
MakeAuthCommand
toAuthMakeCommand
(#20216) - Don't use
asset()
helper insidemix()
(#20197) - Removed
array
type-hint inBuilder::orWhereRaw()
signature (#20234) - Added empty array default to
$attributes
onBelongsToMany::create()
(#20321) - Prepare for PHP 7.2 (#20258, #20330, #20336, #20378)
- Use
unsignedTinyInteger()
injobs.stub
(#20382)
Fixed
Added
- Added
ManagesFrequencies::twiceMonthly()
method (#19874) - Added
RouteCollection::getRoutesByName()
method (#19901) - Added
$expiresAt
parameter toCallbackEvent::withoutOverlapping()
(#19861) - Support keeping old files when testing uploads (#19859)
- Added
--force
option tomake:mail
,make:model
andmake:notification
(#19932) - Added support for PostgreSQL deletes with
USES
clauses (#20062, f94fc02) - Added support for CC and BBC on mail notifications (#20093)
- Added Blade
@auth
and@guest
directive (#20087, #20114) - Added option to configure MARS on SqlServer connections (#20113, c2c917c)
Changed
- Support object items in
Arr::pluck()
(#19838, #19845) MessageBag
interface now extendsArrayable
(#19849)- Made
Blueprint
macroable (#19862) - Improved performance for
Arr::crossJoin()
(#19864) - Use the correct
User
model namespace for new policies (#19965, a7094c2) - Consider scheduled event timezone in
inTimeInterval()
(#19959) - Render exception if handler can't report it (#19977)
- Made
MakesHttpRequests::withServerVariables()
public (#20086) - Invalidate session instead of regenerating it when logging out (#20107)
- Improved
InvalidPayloadException
error message (#20143)
Fixed
Added
- Added
avg()
andaverage()
as higher order proxies (#19628) - Added
fresh()
method to Eloquent collection (#19616, #19671) - Added ability to remove a global scope with another global scope (#19657)
- Added
Collection::intersectKey()
method (#19683) - Support setting queue name via
broadcastQueue()
method (#19703, #19708) - Support default return on
BelongsTo
relations (#19733, #19788, 1137d86, ed0182b) - Added
unless()
method to query builder and collection (#19738, #19740) - Added
array_random()
helper (#19741, #19818, #19826) - Support multiple manifest files on
mix()
(#19764)
Changed
- Escape default value passed to
@yield
directive (#19643) - Support passing multiple fields to
different
validation rule (#19637) - Only dispatch the
MessageSent
event if mails should be sent (#19690) - Removed duplicate
/
frompublic_path()
(#19731) - Made
ThrottlesLogins
more customizable (#19787) - Support PostgreSQL insert statements with
DEFAULT VALUES
(#19804)
Fixed
- Fixed
BelongsTo
bug with incrementing keys (#19631) - Fixed PDO return value bug in
unprepared()
(#19667) - Don't use
event()
helper inHttp\Kernel
(#19688) - Detect lock wait timeout as deadlock (#19749)
- Improved escaping special characters in MySQL comments (#19798)
- Fixed passing email as string to
Event::emailOutputTo()
(#19802) - Fixed
withoutOverlapping()
not creating mutex (#19834)
Removed
- Removed
role
attribute from forms in stubs (#19792)
Added
- Added
Event::nextRunDate()
method (#19537, 09dd336) - Added null safe operator
<=>
to query builder operators list (#19539) - Added
Macroable
trait toRequestGuard
(#19569)
Changed
- Touch
updated_at
timestamp when soft deleting (#19538) - Accept argument list in
Rule::in()
andRule::notIn()
(#19555) - Support checking for strings job names using
QueueFake
(#19575) - Improved image ratio validation precision (#19542)
Fixed
- Resume scheduled task if an error occurs (#19419)
- Decode HTML entities in plain text emails (#19518)
- Added missing locales to
MessageSelector::getPluralIndex()
(#19562) - Use strict check when object is passed to
Collection::contains()
(#19568) - Fixed jobs with a timeout of
0
(#19586) - Never pass
Throwable
tostopWorkerIfLostConnection()
(#19591)
Added
- Added
Macroable
trait toFactoryBuilder
(#19425) - Allow a plain text alternative view when using markdown within Mailables (#19436, ad2eaf7)
- Added nested transactions support for SqlServer (#19439)
Changed
- Moved
env()
helper to Support component (#19409) - Prevent
BadMethodCallException
inRedirectResponse::withErrors()
(#19426) - Suppress error if calling
Str::replaceFirst()
with an empty search (#19427) - Removed the
callable
type hint forarray_sort()
(#19483) - Return the used traits from
TestCase::setUpTraits()
(#19486)
Fixed
- Fixes and optimizations for
Str::after()
(#19428) - Fixed queue size when using Beanstalkd driver (#19465)
- Check if a mutex can be created before running the callback task in
CallbackEvent::run()
(#19466) - Flip expected and actual value on
TestResponse::assertCookie()
(#19495) - Fixed undefined variable error in
Mailable
class (#19504) - Prevent error notice when
database.collation
is not set (#19507)
Added
- Support magic controller methods (#19168)
- Added
Gate
resources (#19124) - Added
Request::routeIs()
method (#19202, 26681eb) - Route
Route::isName()
shorthand method (#19227) - Added support for custom columns in
softDeletes()
method (#19203) - Added
ManagesLayouts::getSection()
method (#19213) - Added
Model::refresh()
shorthand (#19174) - Added
Container::forgetExtenders()
method (#19269, 7c17bf5) - Added
Filesystem::hash()
method (#19256) - Added
TestResponse::assertViewIs()
method (#19291) - Added
path
toPaginator
(#19314) - Added
Collection::concat()
method (#19318, 0f5337f) - Added
make()
method toHasOneOrMany
andMorphOneOrMany
relations (#19307) - Added
str_after()
helper function (#19357) - Added
Router::apiResource()
method (#19347)
Changed
- Move
$sizeRules
and$numericRules
properties fromFormatsMessages
toValidator
(dc7e7cb) - Allows calls to
Collection::times()
without the$callback
parameter (#19278) - Don't ignore jobs with a timeout of
0
(#19266) - Resolve database paginators from the container (#19328)
- Added
news
toPluralizer::$uncountable()
(#19353) - Switched to using
app()->getLocale()
inapp.stub
(#19405)
Fixed
- Fixed
Container::makeWith()
not using parameters when resolving interfaces (#19178) - Stop validating Memcached connection (#19192)
- Fixed the position of
bound()
inContainer::instance()
(#19207) - Prevent applying global scopes on the factory while setting the connection (#19258)
- Fixed database connection issue in queue worker (#19263)
- Don't use HTML comments in notification email template (#19289)
- Fire rebinding callback when using
bind()
method to bind abstract (#19288) - Return
0
fromcallScope()
if$query->wheres
isnull
(#19381)
Added
- Added
Gate::abilities()
accessor (#19143, e9e34b5) - Added ability to eager load counts via
$withCount
property (#19154)
Fixed
- Fixed inversion of expected and actual on assertHeader (#19110)
- Fixed filesystem bug in
Filesystem::files()
method on Windows (#19157) - Fixed bug in
Container::build()
(#19161, bf669e1)
Removed
- Removed
window.Laravel
object (#19135)
Added
- Support dynamic number of keys in
MessageBag::hasAny()
(#19002) - Added
Seeder::callSilent()
method (#19007) - Add
make()
method to Eloquent query builder (#19015) - Support
Arrayable
on Eloquent'sfind()
method (#19019) - Added
SendsPasswordResetEmails::validateEmail()
method (#19042) - Allow factory attributes to be factory instances themselves (#19055)
- Implemented
until()
method onEventFake
(#19062) - Added
$encoding
parameter toStr::length()
(#19047, #19079)
Changed
- Throw exception when invalid first argument is passed to
cache()
helper (d9459b2) - Use
getAuthIdentifierName()
inAuthenticatable::getAuthIdentifier()
(#19038) - Clone queries without order by for aggregates (#19064)
- Force host on password reset notification (cef1055)
Fixed
- Set data key when testing file uploads in nested array (#18954)
- Fixed a bug related to sub select queries and extra select statements (#19013)
- Resolve aliases from container when using parameters (#19071)
- Stop worker if database disconnect occurred (#19080, 583b1b8)
- Fixed internal call to
assertJson()
inassertJsonStructure()
(#19090)
Added
- Added higher order tap (3abc4fb)
- Added
Collection::mapToGroups()
(#18949) - Added
FactoryBuilder::lazy()
method (#18823) - Support Redis Sentinel configuration (#18850)
- Added
queue.prefix
option (#18860, 8510bf9) - Allow
getDisplayableAttribute()
to be used in custom replacers (#18895) - Added
resourceMethodsWithoutModels()
method toAuthorizesRequests
(#18916, #18964) - Added name to
home
route (#18942)
Changed
- Return
PendingDispatch
forKernel::queue()
(51647eb) - Made
RedisManager::resolve()
public (#18830, eb9b99d) - Changed email body color to match wrapper color (#18824)
- Break and hyphenate long words in emails (#18827)
- Force database migration to use the write PDO (#18898)
- Support
JSON_PARTIAL_OUTPUT_ON_ERROR
onJsonResponse
(#18917, db5f011)
Fixed
- Set connection on model factory (#18846, 95a0663)
- Fixed route parameter binding for routes with leading slashes (#18855)
- Don't call
cleanParameterBag()
twice during JSON request (#18840) - Prevent exception in
getActualClassNameForMorph()
when morph map isnull
(#18921) - Use protocol-relative URL in
mix()
helper (#18943) - Cast
$viaChannels
to array (#18960)
Added
- Added ability to send
link_names
parameter in Slack notification (#18765) - Added
Mailable::hasFrom()
method (#18790)
Changed
- Made
Mailer
macroable (#18763) - Made
SessionGuard
macroable (#18796) - Improved queue worker output (#18773)
- Added
newModelInstance()
method to Eloquent Builder (#18775) - Use assertions instead of exceptions in
MocksApplicationServices
(#18774)
Fixed
Added
- Added
assertSuccessful()
andassertRedirect()
toTestResponse
(#18629) - Added
assertSeeText()
andassertDontSeeText()
toTestResponse
(#18690) - Added
assertJsonMissing()
toTestResponse
(#18721, 786b782) - Added support for attaching an image to Slack attachments
$attachment->image($url)
(#18664) - Added
Validator::extendDependent()
to allow adding custom rules that depend on other fields (#18654) - Added support for
--parent
option onmake:controller
(#18606) - Added
MessageSent
event toMailer
(#18744, 6c5f3a4)
Changed
- Don't trim leading slashes on local filesystem base URLs (acd66fe)
- Accept variable on
@empty()
directive (#18738) - Added
string
validation rules toAuthenticatesUsers
(#18746)
Fixed
Added
- Added
getManager()
andsetManager()
to queue worker (#18452) - Added support for Pheanstalk's
$timeout
and$persistent
options (#18448) - Added
Collection::times()
method (#18457) - Added PostgreSQL's
REAL
data type (#18513) - Added
flatMap
to collection higher order proxies (#18529) - Support multiple
--path
parameters withmigrate:reset
(#18540) - Store SparkPost
Transmission-ID
in the header after sending message (#18594)
Changed
- Check for
Htmlable
instead ofHtmlString
inMailer::renderView()
(#18459, da7b006) - Added mutex for schedule events (#18295, ae2eb1f)
- Don't use helper functions in service providers (#18506, #18521)
- Change
user_id
to unsigned integer in database session stub (#18557) - Improved performance of
UrlGenerator::isValidUrl()
(#18566)
Fixed
- Handle missing or malformed
config/app.php
file (#18466, 92931cf) - Only call
up
anddown
on migration if the method exists (d27d94e) - Fixed overwriting of routes with identical path and method (#18475, 5aee967)
- Fixing model/route binding with identical name (#18476)
- Allow
rollbackMigrations()
path to be with string (#18535) - Use
getStatusCode()
inTestResponse::assertRedirect()
(#18559) - Case
parseIds()
to array inInteractsWithPivotTable::sync()
(#18547) - Preserve route parameter names (#18604)
Added
- Added PHPDBG detection to
runningInConsole()
(#18198) - Added
Arr:wrap()
method (#18216) - Allow scheduling of queued jobs (#18235, 7bb67e2)
- Allow skipping mail sending if a listener to
MessageSending
returnsfalse
(#18245) - Added
BcryptHasher::cost()
method (#18266) - Added
Command::alert()
method (#18272) - Added
tap()
method to query builder (#18284) - Added
orderByDesc()
methods to query builder (#18292) - Added
Container::makeWith()
method (#18271, #18320) - Added
InteractsWithDatabase::assertSoftDeleted()
(#18328, 2d4e1f0, f89f917) - Added ability to set queue parameters inside queued listeners (#18375, cf461e2)
- Added
Model::setKeyType()
(#18354) - Output migration name before starting a migration or rollback (#18379, e47e8b1)
- Added
pipeline()
,transaction()
, andexecuteRaw()
toPhpRedisConnection
(#18421) - Added
@isset()
directive (#18425) - Added
tinyIncrements()
database schema method (#18424)
Changed
- Throw exception when
bootstrap/cache
directory is not writable (#18188, b4f0005) - Use
resource_path()
helper inMakeAuthCommand
(#18215) - Added
file_exists()
check toEvent::emailOutput()
(c8eafa8) - Allow wildcards in MIME type validations (#18243)
- Only push existing jobs back into the queue using
queue:retry
(#18279, e874a56) - Support file uploads in nested array (#18276)
- Don't use
config()
helper in Mail component (#18290) - Return the insert ID from
DatabaseJob::release()
(#18288, #18291) - Changed
id
in failed jobs migration stub tobigIncrements()
(#18300) - Prevent
make:auth
from overwriting existing views (#18319, bef8f35) - Ensure Mailable view data is not overridden by order of operations (#18322)
- Use
getAuthIdentifier()
method in broadcasters (#18351) - Use atomic cache operation when checking for event overlaps (8ebb5b8)
- Return pretty JSON response from
HasInDatabase::failureDescription()
(#18377) - Allow Validator extension to use array-style callable (#18399)
- Pass the condition value to query builder's
when()
method (#18419) - Don't require returning the query from
when()
method (#18422)
Fixed
- Fixed an issue with slots when passed content equals
null
(#18246) - Do require
Closure
inorWhereHas()
(#18277) - Let PHP parse
@includeWhen
directive (#18285) - Only include
.php
files when loading database factories (#18336) - Fixed PHP 5.6 issue in
FileFactory::generateImage()
(#18345) - Allow
ImplicitRouteBinding
to match camelcase method parameter names (#18307, 4ae31a1) - Fixing weird behaviour of
Connection::getConfig()
whennull
was passed (#18356) - Attempt to solve an issue with using
required_*
rules while theConvertEmptyStringToNull
middleware is applied (#18376) - Fixed faking of model events (d6cb75c)
- Prevent model event result from firing observable events (#18401, 0607db0)
- Fix issue in
authorizeResource()
with compound names (#18435)