- Fixed broken email sub-copy template escaping (#25734)
- Fixed required carbon version (394f79f)
- Fixed translation escaping (#25858, 4c46500)
- Fix nullable MorphTo and $touches (#25438)
- Allow load relations with similar keys using strict comparison (#25429)
- Fixed
MorphTo
lazy loading andwithoutGlobalScopes
method (#25406)
logoutOtherDevices
method inIlluminate/Auth/SessionGuard.php
class breaks "remember me" cookie (#25386)- Fix self relation existence queries with custom keys (#25397)
- Fix relationships with global scope columns (#25368)
- Fix: revert model syncing after soft-delete (#25392)
- Fix mailables always being queued for later if using Queueable trait (#25378)
- escape lang directive echos (d3c0a36)
- Throw exception for has() with MorphTo relationship (#25337)
- Wrap columns in whereRowValues (#25179)
- Make copyrights line localizable in mail messages (#25183)
- When specifying events to be faked, other events should be normally dispatched (#25185)
- Fix URL validation pattern on PHP 7.3 (#25194)
- Added serialization parameters to helper functions decrypt and encrypt (#25166)
- Make Auth/Recaller handle serialized and unserialized cookies (#25167)
- Support passing CC/CBC in array form in mail notification (#25029)
- Added Rule::requiredIf (#25066)
- Support raw expressions in whereRowValues() (#25117)
- Stopped serializing csrf cookie / header (#25121)
- Avoid an "Undefined offset: 0" if no job was pulled from redis queue (#25020)
- Updating the Pluralizer class to respect the grammar rule (#25063)
- Added restored() and forceDeleted() to observer stub (#40ba2ee)
- Added UploadedFile::get() (#24924)
- Added an alias for a single FactoryBuilder state definition (#24937)
- 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 an issue when passing an array to Request::is() (#24885)
- Fixed message string in NotificationFake::assertSentToTimes() (#24929)
- Added support for variadic params in Cache\Repository::tags() (#24810)
- Handle unquoted JSON selector for MYSQL (#24817)
- Added ability to generate single action controller (#24843)
- Applied improvements to the generated migration name (#24845)
- Added JPEG support to FileFactory::image() (#24853)
- Stop reporting PDOException manually from inside ConnectionFactory (#24864)
- remove unnecessary foreach from is() method (#24872)
- Add missing phpredis connection parameters to PhpRedisConnector (#24678)
- Apply realpath option to refresh and fresh commands (#24683)
- Added
loggedOut()
method in AuthenticatesUsers (#24717)
- Use value() helper in whenLoaded() (#24644)
- Allow accessing the value of the current migrator connection (#24665)
- Check if configuration cache is valid after saving (#24722)
- Except URIs from CheckForMaintenanceMode middleware (#24740)
- Added two Azure SQL server connection lost messages (#24566)
- Allowed passing of recipient name in Mail notifications (#24606)
- Started passing table name to the post migration create hooks (#24621)
- Allowed array/collections in Auth::attempt method (#24620)
- Prevent calling the bootable trait boot method multiple times (#24556)
- Make chunkById() work for non-incrementing/non-integer ids as well (#24563)
- Make ResetPassword Notification translatable (#24534)
- Added whereJsonContains() to SQL Server (#24448)
- Added Model::unsetRelation() (#24486)
- Added Auth::hasUser() (#24518)
- add assertOk() response assertion (#24536)
- Set the controller name on the action array when callable array syntax is used (#24468)
- Make database grammars macroable (#24513)
- Allow "app" migrations to override package migrations (#24521)
- 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)
- Added whereJsonContains() to SQL Server (#24448)
- Added Model::unsetRelation() (#24486)
- Added Auth::hasUser() (#24518)
- add assertOk() response assertion (#24536)
- 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)
- Set the controller name on the action array when callable array syntax is used (#24468)
- Make database grammars macroable (#24513)
- Allow "app" migrations to override package migrations (#24521)
- Fixed typo of missing underscore in
not_regexp
rule name (#24297) - Cleanup null relationships in loadMorph (#24322)
- Fix loadMissing() relationship parsing (#24329)
- Fix FormRequest class authorization validation priority (#24369)
- Fix custom blade conditional ignoring 0 as argument (#24394)
- Added support for renaming indices (#24147)
- Added
Event::fakeFor()
method (#24230) - Added
@canany
Blade directive (#24137) - Added
TestReponse::assertLocation()
method (#24267)
- Validation bypass for
before
andafter
rules when paired withdate_format
rule (#24191)
- Fixed an issue with
Cache::increment()
when expiration isnull
(#24228) - Ignore non-where bindings in nested where constraints (#24000)
- Fixed
withCount()
binding problems (#24240)
- Support updating NPM dependencies from preset (#24189, a6542b0)
- Support returning
Responsable
from middleware (#24201)
- 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)
- Redis connections now implement the
Contracts/Redis/Connection
interface (#24142)
- 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)
- Support passing
Response
andResponsable
toabort()
(4e29889) - Added
pingBeforeIf
andthenPingIf
methods to task scheduler (#24077, 1bf54d2) - Added
withDefault()
support toMorphTo
relationships (#24061)
- Fixed URL generator when request has base path (#24074)
- Added support for custom SparkPost endpoint (#23910)
- Added
Optional::__isset()
handling (#24042) - Added support for multiple cc, bcc and reply-to recipients on mail notifications (#23760)
- Accept only two arguments on
orWhereDate()
(#24043) - Fixed relative route URL generation when using custom host formatter (#24051)
- 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)
- 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 saving timestamp columns on pivots without parent (#23917)
- Quote collation names in MySQL migrations (#23989)
- Fixed sending plain-text only emails (#23981)
- Fixed counting the number of jobs on
Queue::fake()
(#23933)
- Added helpers for subquery joins (#23818)
- Allow
PendingResourceRegistration
to be fluently registered (#23890) - Allow asserting an integer with
assertSee*()
(#23892) - Allow passing
Collection
toRule::in()
andRule::notIn()
(#23875)
- Lock Carbon version at
1.25.*
(27b8844)
- Removed form error for password confirmation (#23887)
- 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)
- Added displayable value to
required_unless
rule (#23833)
- Fixed
RedisQueue::blockingPop()
check when using PhpRedis (#23757)
- Fixed variable reference in
RedisTaggedCache::decrement()
(#23736) - Check
updated_at
column existence inHasOneOrMany::update()
(#23747)
- Check
iv
length inEncrypter::validPayload()
(886d261)
- Added
SlackMessage::info()
method (#23711) - Added
SessionGuard::logoutOtherDevices()
method (9c51e49)
- Replaced Blade's
or
operator with null-coalescing operator (13f732e)
- Get Blade compiler from engine resolver (#23710)
- Default to an empty string when validating the URL signatures (#23721)
- 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)
- 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)
- 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)
- 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 clearing the cache without a cache directory (#23538)
- Fix for Carbon 1.24.1 (#23464)
- Added
Blueprint::dropMorphs()
(#23431) - Added
Mailable::attachFromStorage()
methods (0fa361d) - Added
orWhere*()
builder methods for day, month and year (#23449)
- 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)
- Regenerate token when regenerating the session (20e8419)
- Fixed an issue with resources when loading a single merge value with an associative array (#23414)
- 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)
- 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
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 SFTP filesystem driver (#23308)
- Fixed
PostgresGrammar::whereTime()
casting (#23323) - Fixed
SQLiteGrammar::whereTime()
correct (#23321)
- Added
sortKeys()
andsortKeysDesc()
methods toCollection
(#23286)
- Return
null
fromoptional()
helper if object property is undefined (#23267) - Cache event wildcard listeners (#23299, 82099cb)
- Changed
morphs()
andnullableMorphs()
to useunsignedBigInteger()
(#23320)
- Prevent delayed jobs in v5.5 fail to run in v5.6 (#23287)
Queue::bulk()
fake now properly pushes expected jobs (#23294)- Fixed the list of packages removed when the "none" preset is installed (#23305)
- Fixed an issue with
orHaving()
arguments (e7f13be)
- Added model reference to
MassAssignmentException
(#23229) - Added support for setting the locale on
Mailable
(#23178, a432d9e) - Added new udiff methods to the
Collection
(#23107)
- 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)
- 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)
- 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)
- Fixed an issue in
TestResponse::assertSessionHasErrors()
(#23093) - Update Vue and React presets to Bootstrap v4 (8a9c5c4)
- Support customization of schedule mutex cache store (20e2919)
- Added Slack attachment pretext attribute (#23075)
- Added missing nested joins in
Grammar::compileJoins()
(#23059) - Improved session errors assertions in
TestResponse::assertSessionHasErrors()
(#23055)
- Fixed
BelongsToMany
pivot relation wakeup (#23081)
- Removed monolog configurator (#23078)
⚠️ Upgraded to Symfony 4 (#22450)⚠️ Upgraded to Bootstrap 4 (#22754, #22494, 25559cd, 12d789d)⚠️ AddedrunningUnitTests()
toApplication
contract (#21034)⚠️ Upgradedcron-expression
to2.x
(#21637)
⚠️ Removed deprecatedoptimize
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)
- Support customizing the mail message building in
ResetPassword::toMail()
(6535186) - Added
AuthServiceProvider::policies()
method (6d8e530)
- Added
@csrf
and@method
directives (5f19844, #22912) - Added
Blade::component()
method for component aliases (#22796, 7c3ba0e) ⚠️ Made double encoding the default (7c82ff4)
- Removed
$decayMinutes
argument fromRateLimiter::tooManyAttempts()
(#22202)
⚠️ Fixed keyless calls touniqueStrict()
(#21854)- Added operator support to
Collection@partition()
(#22380) - Improve performance of
Collection::mapToDictionary()
(#22774, c09a0fd) - Accept array of keys on
Collection::except()
(#22814)
⚠️ 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)
⚠️ AcceptThrowable
inDetectsLostConnections
(#22948)
⚠️ Serialize relationships (#21229)- Allow setting custom owner key on polymorphic relationships (#21310)
⚠️ Sync model afterrefresh()
(#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 toFactoryBuilder::getRawAttributes()
(#22936)⚠️ ChangeResource
name away from soft-reserved name (#22969, aad6089)- Added support for casting to custom date formats (#22989, 1f902c8)
⚠️ Return an empty array fromArr::wrap()
when called withnull
(#21745)- Return class traits in use order from
class_uses_recursive()
(#22537) - Added
Str::uuid()
andStr::orderedUuid()
(3d39604)
⚠️ 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)
- Pass notification instance to
routeNotificationFor*()
methods (#22289)
⚠️ Addedpayload()
andgetJobId()
toJob
contract (#21303)- Removed unused
Worker::raiseFailedJobEvent()
method (#21901) - Support blocking pop from Redis queues (#22284, dbad055, 5923416)
⚠️ Returnfalse
fromexpectsJson()
when requested content type isn't explicit (#22506, 3624d27)- Added
Request::getSession()
method (e546a5b) - Accept array of keys on
Request::hasAny()
(#22952)
- Added missing
$raw
and$sameSite
parameters toCookie\Factory
methods (#21553) ⚠️ Return201
status if Model was recently created (#21625)- Set original response JSON responses (#22455)
- Added
streamDownload()
method (#22777) ⚠️ Allow insecure cookies whensession.secure
istrue
(#22812)
- Added
SetCacheHeaders
middleware (#22389, f6f386b, df06357) - Support pulling rate limit from the user instance in
ThrottleRequests
(c9e6100)
- Support dot notation in
Session::exists()
(#22935)
⚠️ Throw exception ifManager::driver()
is called withnull
(#22018)⚠️ AddedhasCommandHandler()
,getCommandHandler()
andmap()
toBus\Dispatcher
contract (#22958, #22986)- Added
useBootstrapThree()
helper to paginators (c919402)