- Make sure
Model::getDates()
returns unique columns (#20193) - Fixed pulled
doctrine/inflector
version (#20227) - Fixed issue with
chunkById()
whenorderByRaw()
is used (#20236)
- Handle a non-existing key in
ArrayStore
(#20156) - Fixed bug
@guest
and@auth
directives (#20166, b164e45)
- 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)
- 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)
- Don't re-escape a
View
instance passed as the default value to@yield
or@section
directives (#19884) - Make sure migration file is loaded before trying to rollback (#19922)
- Fixed caching issue in
mix()
(#19968) - Signal alarm after timeout passes (#19978)
- 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)
- 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
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
role
attribute from forms in stubs (#19792)
- Added
Collection::diffAssoc()
method (#19604)
- Updated PHPUnit whitelist (#19609)
- Update timestamps on soft delete only when they are used (#19627)
- Added
Event::nextRunDate()
method (#19537, 09dd336) - Added null safe operator
<=>
to query builder operators list (#19539) - Added
Macroable
trait toRequestGuard
(#19569)
- 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)
- 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
Macroable
trait toFactoryBuilder
(#19425) - Allow a plain text alternative view when using markdown within Mailables (#19436, ad2eaf7)
- Added nested transactions support for SqlServer (#19439)
- 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)
- 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)
- 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)
- 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
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
Gate::abilities()
accessor (#19143, e9e34b5) - Added ability to eager load counts via
$withCount
property (#19154)
- 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
window.Laravel
object (#19135)
- 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)
- 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)
- 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)
- Reverted queue prefix option #18860 (#18987)
- Return
null
if key is not found fromRedisStore:many()
(#18984)
- 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)
- 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)
- 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 ability to send
link_names
parameter in Slack notification (#18765) - Added
Mailable::hasFrom()
method (#18790)
- 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)
- 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)
- Don't trim leading slashes on local filesystem base URLs (acd66fe)
- Accept variable on
@empty()
directive (#18738) - Added
string
validation rules toAuthenticatesUsers
(#18746)
- Fixed an issue with
Collection::groupBy()
when the provided value is a boolean (#18674) - Bring back an old behaviour in resolving controller method dependencies (#18646)
- Fixed job release when exception occurs (#18737)
- Fixed eloquent
increment()
anddecrement()
update attributes (#18739, 1728a88)
- 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)
- 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)
- 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 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)
- 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 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)
- Made queue worker properties
$shouldQuit
and$paused
public (e40c0e7)
- Proxy
isset()
checks onTestResponse
(#18182)
- Added
Str::kebab()
andkebab_case()
helper (#18084) - Added
Route::getActionMethod()
(#18105) - Support granular
$tries
and$timeout
onMailable
(#18103) - Added context to the
assertJson()
response (#18166, da2c892) - Add
whereNotIn()
andwhereNotInStrict()
toCollection
(#18157)
- Create
TestResponse
using composition instead of inheritance (#18089) - Changed visibility of
Pivot::$parent
fromprotected
topublic
(#18096) - Catch Sqlite3 deadlocks in
DetectsDeadlocks
(#18107) - Use
fromRawAttributes()
when inModel::newPivot()
(#18127, 063e5ae) - Use default connection in
DatabaseManager::purge()
when no connection name is provided (#18128) - Convert rule objects only once to string (#18141)
- Respect
ShouldQueue
contract inMailer::send()
(#18144, 717f1f6, #18160)
- Don't use
value()
helper inBoundMethod
class (#18075) - Don't require manifest file when running
npm run hot
(#18088) - Fixed injection placement of dependencies for routing method parameters (#17973)
- Return
false
fromModel::fireModelEvent()
if custom model event returnsfalse
(c5a6290) - Fixed
firstOrFail()
on relation setting the wrong model onModelNotFoundException
(#18138) - Fixed
RateLimiter
setting initial attempts count to2
(#18139) - Fixed compiled
DELETE
query when usingJOIN
with aliases (#18156, e09b9eb) - Fixed validating
present
in combination withnullable
(#18173)
- Add
$default
parameter toCollection::when()
method (#17941) - Support
--resource
argument onmake:model
command (#17955) - Added
replaceDimensions()
for validator messages (#17946, b219058) - Allow Slack notifications to use image urls (#18011)
- Added
@includeWhen($condition, $view, $data)
directive (#18047)
- Prevent Blade from compiling statements inside comments (#17952)
- Don't flash empty array to session, if
withInput()
is given empty array (#17979) - Use the pagination translation strings in paginator templates (#18009)
- Use
getAuthPassword()
method inAuthenticateSession
middleware (#17965) - Return
null
fromGate::getPolicyFor()
if given class is not a string (#17972) - Add missing methods to the
Job
interface (#18034) - Improved PostgreSQL table existence check (#18041)
- Allow
getActualClassNameForMorph()
used bymorphInstanceTo()
to be overridden (#18058)
- Fixed
@lang
directive when used with JSON file (#17919, 2bd35c1) - Improved image
dimensions
validation rule (#17943, #17944, #17963, #17980) - Fixed
$willBeAvailableAt
having the wrong time if using$retryAfter
inMaintenanceModeException
(#17991) - Trim spaces while collecting section name (#18012)
- Fixed implementation of
SqsQueue::size()
(#18037) - Fixed bug in
PasswordBroker::deleteToken()
(#18045) - Fixed route parameters binding (#17973)
- Allow configuration of Faker locale through
app.faker_locale
config (#17895) - Added
when()
method toCollection
class (#17917) - Check for files in
request()
helper (e08714d, 18d1648) - Added
TestResponse::assertSessionHasErrors()
method (dbaf3b1)
- Prevent duplication of embedded files in
Mail\Message
(#17877) - Only unserialize data if needed in
CallQueuedListener
(964fb7f) - Made a couple of properties public (614b94a)
- Handle
Model
instances inAuthorize
middleware (#17898) - Use
asset()
helper inapp.stub
(#17896) - Test PhpRedis connection if extension is loaded (#17882, #17910)
- Use
Carbon::setTestNow()
in all tests (#17937)
- Make sub select union queries work with SQLite (#17890)
- Fix
zRangeByScore()
options syntax for PhpRedis (#17912)
- Support
Encrypt
andTrustServerCertificate
options on SqlServer connections (#17841) - Support custom pivot models in
MorphToMany::newPivot()
(#17862) - Support
Arrayable
objects in Eloquent'swhereKey()
method (#17812)
- Use
app.locale
lang attribute inapp.stub
(#17827) - Throw
JsonEncodingException
when JSON encoder fails to encode eloquent attribute (#17804, 11e89f3) - Ensure file
hashName()
is unique (#17879, 830f194)
- Added missing
Str
class import toTestResponse
(#17835) - Fixed PhpRedis’
zadd()
method signature (#17832)
- Added Blade
@prepend
directive (#17696) - Added
Collection::tap()
method (#17756) - Allow multiple manifest files for
mix()
helper (#17759) - Adding facility to
Log:useSyslog()
(#17789) - Added macros to Eloquent builder (#17719)
- Added
TestResponse::assertJsonFragment()
method (#17809)
- Use
route()
helper instead ofurl()
in authentication component (#17718) - Ensure that the
map()
method exists before calling inRouteServiceProvider::loadRoutes()
(#17784) - Clean up how events are dispatched (8c90e7f, c9e8854)
- Changed job
name
todisplayName
(4e85a9a, d033626) - Made plain string job payloads more similar to object based payloads (bd49288)
- Bring back pluralization rules for translations (#17826)
- Apply overrides in
factory()->raw()
method (#17763)
- Added
Macroable
trait toTestResponse
(#17726) - Added container alias for the Redis connection instance (#17722)
- Added
raw()
method toFactoryBuilder
(#17734) - Added
json()
as alias fordecodeResponseJson
method onTestResponse
(#17735)
- Use
route()
helper instead ofurl()
in authentication component (#17718) - Added
Jedi
to uncountable list for pluralization (#17729) - Return relative URL from
mix()
helper (#17727) - Sort foreign keys on eloquent relations (#17730)
- Properly set the JSON payload of
FormRequests
instead of re-building it (#17760, 2d725c2) - Use
isset()
instead ofarray_key_exists()
inHasAttributes::getAttributeFromArray()
(#17739)
- Added missing
sleep
option toqueue:listen
(59ef5bf) - Switched to strict comparison
TrimStrings
middleware (#17741)
- Added
TestResponse::assertJsonStructure()
(#17700) - Added
Macroable
trait to EloquentRelation
class (#17707)
- Move
shouldKill()
check fromdaemon()
tostopIfNecessary()
(8403b34) - Removed
isset()
check fromvalidateSame()
(#17708)
- Added
force
option toqueue:listen
signature (#17716) - Fixed missing
return
inHasManyThrough::find()
andHasManyThrough::findMany()
(#17717)
- Added
Illuminate\Support\Facades\Schema
tonotifications.stub
(#17664) - Added support for numeric arguments to
@break
and@continue
(#17603)
- Use
usesTimestamps()
in Eloquent traits (#17612) - Default to
null
if amount isn't set infactory()
helper (#17614) - Normalize PhpRedis GET/MGET results (#17196)
- Changed visibility of
Validator::addRules()
fromprotected
topublic
(#17654) - Gracefully handle
SIGTERM
signal in queue worker (b38ba01, 819888c) - Support inspecting multiple events of same type using
Event
fake (55be2ea) - Replaced hard-coded year in plain-text markdown emails (#17684)
- Made button component in plain-text markdown emails easier to read (#17683)
- Set
Command::$name
inCommand::configureUsingFluentDefinition()
(#17610) - Support post size
0
(unlimited) inValidatePostSize
(#17607) - Fixed method signature issues in
PhpRedisConnection
(#17627) - Fixed
BelongsTo
not accepting id of0
in foreign relations (#17668) - Support double quotes with
@section()
(#17677) - Fixed parsing explicit validator rules (#17681)
- Fixed
SessionGuard::recaller()
when request isnull
(#17688, 565456d) - Added missing
force
andtries
options forqueue:listen
(#17687) - Fixed how reservation works when queue is paused (9d348c5)
- Generate non-existent models with
make:controller
(#17587, 382b78c) - Added
TestResponse::dump()
method (#17600)
- Switch to
ViewFactory
contract inMail/Markdown
(#17591) - Use implicit binding when generating controllers with
make:model
(#17588) - Made PhpRedis method signatures compatibility with Predis (#17488)
- Use
config('app.name')
inmarkdown/message.blade.php
(#17604) - Use
getStatusCode()
instead ofstatus()
inTestResponse::fromBaseResponse()
(#17590)
- Fixed loading of
.env.testing
when running PHPUnit (#17596)
- Fixed database session data not persisting (#17584)
- Add
hasMiddlewareGroup()
andgetMiddlewareGroups()
method toRouter
(#17576)
- Fixed
--database
option onmigrate
commands (#17574) - Fixed
$sequence
being always overwritten inPostgresGrammar::compileInsertGetId()
(#17570)
- Removed various unused parameters from view compilers (#17554)
- Removed superfluous
ForceDelete
extension fromSoftDeletingScope
(#17552)
- Moved
$forElseCounter
property fromBladeCompiler
toCompilesLoops
(#17538)
- Fixed bug in
Router::pushMiddlewareToGroup()
(1054fd2) - Fixed indentation in
Notifications/resources/views/email.blade.php
(0435cfc)
- Fixed removal of reset tokens after password reset (#17524)
- Fixed view parent placeholding (64f7e9c)
- Added real-time facades 😈 (feb52bf)
- Added
retry()
helper (e3bd359, 52e9381) - Added
array_wrap()
helper function (0f76617) - Added default 503 error page into framework (855a8aa, #16848)
- Added
Encrypter::encryptString()
to bypass serialization (9725a8e) - Removed compiled class file generation and deprecated
ServiceProvider::compiles()
(#17003, 733d829) - Renamed
DetectEnvironment
toLoadEnvironmentVariables
(c36874d) - Switched to
::class
notation across the codebase (#17357)
- Secured password reset tokens against timing attacks and compromised databases (#16850, 9d674b0)
- Refactored authentication component (7b48bfc, 5c4541b)
- Added names to password reset routes (#16988)
- Stopped touching the user timestamp when updating the
remember_token
(#17135)
- Consider interfaces and extended classes in
Gate::resolvePolicyCallback()
(#15757)
- Added Blade components and slots (e8d2a45, a00a201)
- Refactored Blade component (7cdb6a6, 5e394bb)
- Refactored View component (#17018, bb998dc)
- Refactored Blade
@parent
compilation (#16033, 16f72a5) - Added support for translation blocks in Blade templates (7179935)
- Don't reverse the order of
@push
ed data (#16325) - Allow view data to be passed Paginator methods (#17331)
- Add
mix()
helper method (6ea4997) - Escape inline sections content (#17453)
- Added model binding in broadcasting channel definitions (#16120, 515d97c)
- Added
Dispatchable::broadcast()
0fd8f8d - Switched to broadcasting events using new style jobs (#17433)
- Added
RedisStore::add()
to store an item in the cache if the key doesn't exist (#15877) - Added
cache:forget
command (#16201, 7644977) - Refactored cache events (b7454f0, #17120)
Cache::flush()
now returns boolean (#15831, 057492d)
- Added higher-order messages for the collections (#16267, e276b3d, 2b7ab30, #16274, 724950a, #17000)
- Allow collection macros to be proxied (#16749)
- Added operator support to
Collection::contains()
method (#16791) - Renamed
every()
method tonth()
and added newevery()
to determine if all items pass the given test (#16777) - Allow passing an array to
Collection::find()
(#16849) - Always return a collection when calling
Collection::random()
with a parameter (#16865) - Don't renumber the keys and keep the input array order in
mapWithKeys()
(#16564)
- Added
--model
tomake:controller
command to generate resource controller with type-hinted model (#16787) - Require confirmation for
key:generate
command in production (#16804) - Added
ManagesFrequencies
trait (e238299) - Added
Queueable
to queued listener stub (dcd64b6) - Switched from file to cache based Schedule overlap locking (#16196, 5973f6c)
- Changed namespace generation in
GeneratorCommand
(de9e03d) - Added
Command::$hidden
andScheduleFinishCommand
(#16806) - Moved all framework command registrations into
ArtisanServiceProvider
(954a333, baa6054, 87bd2a9) - Support passing output buffer to
Artisan::call()
(#16930) - Moved
tinker
into an external package (#17002) - Refactored queue commands (07a9402, a82a25f, f2beb2b)
- Allow tasks to be scheduled on weekends (#17085)
- Allow console events to be macroable (#17107)
- Added
Container::factory()
method to the Container contract (#15430) - Added support for binding methods to the container (#16800, 1fa8ea0)
- Trigger callback when binding an extension or resolving callback to an alias (c99098f)
- Support contextual binding with aliases (c99098f)
- Removed
$parameters
fromApplication::make()
andapp()
/resolve()
helpers (#17071, #17060) - Removed
Container::share()
(1a1969b) - Removed
Container::normalize()
(ff993b8)
- Refactored all database components (too many commits, sorry)
- Allow rolling back to a given transaction save-point (#15876)
- Added
$values
parameter toBuilder::firstOrNew()
(#15567) - Allow dependency injection on database seeders
run()
method (#15959) - Added support for joins when deleting deleting records using SqlServer (#16618)
- Added collation support to
SQLServerGrammar
(#16227) - Don't rollback to save-points on deadlock (nested transaction) (#15932)
- Improve
Connection::selectOne()
performance by switching toarray_shift()
(#16188) - Added
having()
shortcut (#17160) - Added customer connection resolver (#17248)
- Support aliasing database names with spaces (#17312)
- Support column aliases using
chunkById()
(#17034) - Execute queries with locks only on write connection (#17386)
- Added
compileLock()
method toSqlServerGrammar
(#17424)
- Refactored Eloquent (too many commits, sorry)
- Added support for object-based events for native Eloquent events (e7a724d, 9770d1a)
- Added custom class support for pivot models (#14293, 5459777)
- Use the model's primary key instead of
id
inModel::getForeignKey()
(#16396) - Made
date
anddatetime
cast difference more explicit (#16799) - Use
getKeyType()
instead of$keyType
inModel
(#16608) - Only detach all associations if no parameter is passed to
BelongsToMany::detach()
(#16144) - Return a database collection from
HasOneOrMany::createMany()
(#15944) - Throw
JsonEncodingException
whenModel::toJson()
fails (#16159, 0bda866) - Default foreign key for
belongsTo()
relationship is now dynamic (#16847) - Added
whereKey()
method (#16558) - Use parent connection if related model doesn't specify one (#16103)
- Enforce an
orderBy
clause forchunk()
(#16283, #16513) - Added
$connection
parameter tocreate()
andforceCreate()
(#17392)
- Removed event priorities (dbbfc62, #17245, f83edc1)
- Allow queued handlers to specify their queue and connection (fedd4cd)
- Converted
locale.changed
event intoLocaleUpdated
class (3385fdc) - Unified wording (2dcde69)
- Allow chaining queueable methods onto trait dispatch (9fde549)
- Removed
Queueable
trait from event listeners subs (2a90ef4)
- Use UUID instead of
md5()
for generating file names inFileHelpers
(#16193) - Allow array of options on
Filesystem
operations (481f760)
- Refactored session component (66976ba, d9e0a6a)
- Added
Illuminate\Http\Request\Concerns
traits (4810e9d) - Use variable-length method signature for
CookieJar::queue()
(#16290, ddabaaa) - Added
FormRequestServiceProvider
(b892805) - Renamed
Http/Exception
namespace toHttp/Exceptions
(#17398) - Renamed
getJsonOptions()
togetEncodingOptions()
onJsonResponse
(e689b2a) - Renamed
VerifyPostSize
middleware toValidatePostSize
(893a044) - Converted
kernel.handled
event intoRequestHandled
class (43a5e5f) - Throw
AuthorizationException
inFormRequest
(1a75409) - Use
Str::random
instead of UUID inFileHelpers
(#17046) - Moved
getOriginalContent()
toResponseTrait
(#17137) - Added JSON responses to the
AuthenticatesUsers
andThrottlesLogins
(#17369) - Added middleware to trim strings and convert empty strings to null (f578bbc)
- Added
LogServiceProvider
to defer loading of logging code (#15451, 6550153, #15794) - The
Log
facade now usesLoggerInterface
instead of the log writer (#15855) - Converted
illuminate.log
event intoMessageLogged
class (57c82d0)
- Added support for Markdown emails and notifications (#16768, b876759, cd569f0, 5325385)
- Refactored Mail component and removed
SuperClosure
dependency (50ab994, 5dace8f) - Allow
Mailer
to emailHtmlString
objects (882ea28) - Added
hasTo()
,hasCc()
andhasBcc()
toMailable
(fb29b38)
- Added
NotificationSender
class (5f93133) - Removed
to
andcc
from mailMailMessage
(ff68549) - Add salutation option to
SimpleMessage
notification (#17429)
- Support job-based queue options (#16257, 2382dc3, ee385fa)
- Fixed manually failing jobs and added
FailingJob
class (707a3bc, 55afe12) - Converted
illuminate.queue.looping
event intoLooping
class (57c82d0) - Refactored Queue component (9bc8ca5, e030231, a041fb5, 7bb15cf, 5505728, fed36bd)
- Refactored how queue connection names are set (4c600fb)
- Let queue worker exit ungracefully on
memoryExceeded()
(#17302) - Support pause and continue signals in queue worker (827d075)
- Added support for PhpRedis (#15160, 01ed1c8, 1ef8b9c)
- Added support for multiple Redis clusters (#16696, 464075d)
- Added
RedisQueue::laterRaw()
method (7fbac1c) - Return migrated jobs from
RedisQueue::migrateExpiredJobs()
(f21e942) - Send full job back into
RedisQueue
(16e862c)
- Added support for fluent routes (#16647, #16748)
- Removed
RouteServiceProvider::loadRoutesFrom()
(0f2b3be) - Allow route groups to be loaded directly from a file (#16707, #16792)
- Added named parameters to
UrlGenerator
(#16736, ce4d86b) - Refactored Route component (b75aca6, 9d3ff16, c906ed9, 0f7985c, 0f7985c, 3f4221f)
- Refactored Router component (eecf6ec, b208a4f, 21de409, e75730e)
- Refactored Router URL generator component (39e8c83, 098da0d)
- Removed
RouteDependencyResolverTrait::callWithDependencies()
(f7f13fa) UrlGenerator
improvements (f0b9858, 4f96f42)- Compile routes only once (c8ed0c3, b11fbcc)
- Simplified built-in testing for Dusk (#16667, 126adb7, b6dec26, 939264f)
- Improve database testing methods (#16679, 14e9dad, f23ac64)
- Refactored
MailFake
(b1d8f81) - Namespaced all tests (#17058, #17148)
- Allow chaining of response assertions (#17330)
- Return
TestResponse
fromMakesHttpRequests::json()
(#17341) - Always return collection from factory when
$amount
is set (#17493)
- Added JSON loader for translations and
__()
helper (#16424, #16470, 9437244) - Replaced Symfony's translator (#15563)
- Added
namespaces()
method to translation loaders (#16664, fe7bbf7) - Switched to
trans()
helper inAuthenticatesUsers
(#17202)
- Refactored Validation component (#17005, 9e98e7a, 9b817f1)
- Removed files hydration in
Validator
(#16017) - Added IPv4 and IPv6 validators (#16545)
- Made
date_format
validation more precise (#16858) - Add place-holder replacers for
*_or_equal
rules (#17030) - Made
sometimes()
chainable (#17241) - Support wildcards in
MessageBag::first()
(#15217) - Support implicit keys in
MessageBag::first()
andMessageBag::first()
(#17001) - Support arrays with empty string as key (#17427)
- Add type check to
validateUrl()
(#17504)