- Replaced deprecated
DefaultFinder
class (#16602)
- Added
before_or_equal
andafter_or_equal
validation rules (#16490) - Added fluent builder for
SlackMessageAttachmentField
(#16535, db4879a) - Added the possibility to set and get file permissions in
Filesystem
(#16560)
- Added additional
keyType
check to avoid using an invalid type for eager load constraints (#16452) - Always debug Pusher in
PusherBroadcaster::broadcast()
(#16493) - Don't pluralize "metadata" (#16518)
- Always pass a collection to
LengthAwarePaginator
frompaginate()
methods (#16547) - Avoid unexpected connection timeouts when flushing tagged caches on Redis (#16568)
- Enabled unicode support to
NexmoSmsChannel
(#16577, 3001640)
- Fixed view compilation bug when using " or " in strings (#16506)
- Added
AuthenticateSession
middleware (fc302a6) - Support arrays in
HasOne::withDefault()
(#16382) - Define route basename for resources (#16352)
- Added
$fallback
parameter toRedirector::back()
(#16426) - Added support for footer and markdown in
SlackAttachment
(#16451) - Added password change feedback auth stubs (#16461)
- Added
name
to default register route (#16480) - Added
ServiceProvider::loadRoutesFrom()
method (#16483)
- Use
getKey()
instead of$id
inPusherBroadcaster
(#16438)
- Pass
PheanstalkJob
to Pheanstalk'sdelete()
method (#16415) - Don't call PDO callback in
reconnectIfMissingConnection()
until it is needed (#16422) - Don't timeout queue if
--timeout
is set to0
(#16465) - Respect
--force
option ofqueue:work
in maintenance mode (#16468)
- Added database slave failover (#15553, ed28c7f)
- Added
Arr::shuffle($array)
(ed28c7f) - Added
prepareForValidation()
method toFormRequests
(#16238) - Support SparkPost transports options to be set at runtime (#16254)
- Support setting
$replyTo
for email notifications (#16277) - Support
url
configuration parameter to generate filesystem disk URL (#16281, dcff158) - Allow
SerializesModels
to restore models excluded by global scope (#16301) - Allow loading specific columns while eager-loading Eloquent relationships (#16327)
- Allow Eloquent
HasOne
relationships to return a "default model" (#16198, 9b59f67) - Allow
SlackAttachment
color override (#16360) - Allow chaining factory calls to
define()
andstate()
(#16389)
- Dried-up console parser and extract token parsing (#16197)
- Support empty array for query builder
orders
property (#16225) - Properly handle filling JSON attributes on Eloquent models (#16228)
- Use
forceReconnection()
method inMailer
(#16298) - Double-quote MySQL JSON expressions (#16308)
- Moved login attempt code to separate method (#16317)
- Escape the RegExp delimiter in
Validator::getExplicitKeys()
(#16309) - Use default Slack colors in
SlackMessage
(#16345) - Support presence channels names containing the words
private-
orpresence-
(#16353) - Fail test, instead of throwing an exception when
seeJson()
fails (#16350) - Call
sendPerformed()
for all mail transports (#16366) - Add
X-SES-Message-ID
header inSesTransport::send()
(#16366) - Throw
BroadcastException
whenPusherBroadcaster::broadcast()
fails (#16398)
- Catch errors when handling a failed job (#16212)
- Return array from
Translator::sortReplacements()
(#16221) - Don't use multi-byte functions in
UrlGenerator::to()
(#16081) - Support configuration files as symbolic links (#16080)
- Fixed wrapping and escaping in SQL Server
dropIfExists()
(#16279) - Throw
ManuallyFailedException
ifInteractsWithQueue::fail()
is called manually (#16318, a20fa97) - Catch
Throwable
in timezone validation (#16344) - Fixed
Auth::onceUsingId()
by reversing the order of retrieving the id inSessionGuard
(#16373) - Fixed bindings on update statements with advanced joins (#16368)
- Added support for carbon-copy in mail notifications (#16152)
- Added
-r
shortcut tomake:controller
command (#16141) - Added
HasDatabaseNotifications::readNotifications()
method (#16164) - Added
broadcastOn()
method to allow notifications to be broadcasted to custom channels (#16170)
- Avoid extraneous database query when last
chunk()
is partial (#16180) - Return unique middleware stack from
Route::gatherMiddleware()
(#16185) - Return early when
Collection::chunk()
size zero or less (#16206, 46ebd7f)
- Bind
double
asPDO::PARAM_INT
on MySQL connections (#16069)
- Added
ResetsPasswords::validationErrorMessages()
method (#16111)
- Use
toString()
instead of(string)
on UUIDs for notification ids (#16109)
- Don't hydrate files in
Validator
(#16105)
- Removed
-q
shortcut frommake:listener
command (#16110)
- Added
--resource
(or-r
) option tomake:model
command (#15993) - Support overwriting channel name for broadcast notifications (#16018, 4e30db5)
- Added
Macroable
trait toRule
(#16028) - Added
Session::remember()
helper (#16041) - Added option shorthands to
make:listener
command (#16038) - Added
RegistersUsers::registered()
method (#16036) - Added
ResetsPasswords::rules()
method (#16060) - Added
$page
parameter tosimplePaginate()
inBelongsToMany
andHasManyThrough
(#16075)
- Catch
dns_get_record()
exceptions invalidateActiveUrl()
(#15979) - Allow reconnect during database transactions (#15931)
- Use studly case for controller names generated by
make:model
command (#15988) - Support objects that are castable to strings in
Collection::keyBy()
(#16001) - Switched to using a static object to collect console application bootstrappers that need to run on Artisan starting (#16012)
- Return unique middleware stack in
SortedMiddleware::sortMiddleware()
(#16034) - Allow methods inside
@foreach
and@forelse
expressions (#16087) - Improved Scheduler parameter escaping (#16088)
- Fixed
session_write_close()
on PHP7 (#15968) - Fixed ambiguous id issues when restoring models with eager loaded / joined query (#15983)
- Fixed integer and double support in
JsonExpression
(#16068) - Fixed UUIDs when queueing notifications (18d26df)
- Fixed empty session issue when the session file is being accessed simultaneously (#15998)
- Removed
Requests
import from controller stubs (#16011) - Removed unnecessary validation feedback for password confirmation field (#16100)
- Added
--controller
(or-c
) option tomake:model
command (#15795) - Added object based
dimensions
validation rule (#15852) - Added object based
in
andnot_in
validation rule (#15923, #15951, 336a807) - Added
clear-compiled
command success message (#15868) - Added
SlackMessage::http()
to specify additionalheaders
orproxy
options (#15882) - Added a name to the logout route (#15889)
- Added "feedback" to
Pluralizer::uncountable()
(#15895) - Added
FormRequest::withValidator($validator)
hook (#15918, bf8a36a) - Add missing
ClosureCommand::$callback
property (#15956)
- Total rewrite of middleware sorting logic (6b69fb8, 9cc5334)
- Wrap PostgreSQL database schema changes in a transaction (#15780, #15962)
- Expect
array
onValidator::explodeRules()
(#15838) - Return
null
if an empty key was passed toModel::getAttribute()
(#15874) - Support multiple
LengthAwarePaginator
on a single page with different$pageName
properties (#15870) - Pass ids to
ModelNotFoundException
(#15896) - Improved database transaction logic (7a0832b)
- Use
name()
method instead ofgetName()
(#15955) - Minor syntax improvements (#15953, #15954, 4e9c9fd)
- Fixed
migrate:status
using another connection (#15824) - Fixed calling closure based commands (#15873)
- Split
SimpleMessage
by all possible EOLs (#15921) - Ensure that the search and the creation/update of Eloquent instances happens on the same connection (#15958)
- Added object based
unique
andexists
validation rules (#15809)
- Added model factory "states" (#14241)
Collection::only()
now returns all items if$keys
isnull
(#15695)
- Added workaround for Memcached 3 on PHP7 when using
many()
(#15739) - Fixed bug in
Validator::hydrateFiles()
when removing the files array (#15663) - Fixed model factory bug when
$amount
is zero (#15764, #15779) - Prevent multiple notifications getting sent out when using the
Notification
facade (#15789)
- Added "furniture" and "wheat" to
Pluralizer::uncountable()
(#15703) - Allow passing
$keys
toModel::getAttributes()
(#15722) - Added database blueprint for soft deletes with timezone (#15737)
- Added given guards to
AuthenticationException
(#15745) - Added Seneca quote to
Inspire
command (#15747) - Added
div#app
to auth layout stub (08bcbdb) - Added PHP 7.1 timeout handler to queue worker (cc9e1f0)
- Changed visibility of
Route::getController()
to public (#15678) - Changed notifications
id
column type touuid
(#15719)
- Fixed PDO bindings when using
whereHas()
(#15740)
- Use granular notification queue jobs (#15681, 3a5e510)
- Reverted recent changes to the queue (d8dc8dc)
- Fixed
DaemonCommand
command name (b681bff)
- Added
serialize()
andunserialize()
onRedisStore
(#15657)
- Use
$signature
command style onDaemonCommand
andWorkCommand
(#15677)
- Added support for priority level in mail notifications (#15651)
- Added missing
$minutes
property onCookieSessionHandler
(#15664)
- Removed forking and pcntl requirements while still supporting timeouts (#15650)
- Set exception handler first thing in
WorkCommand::runWorker()
(99994fe)
- Added
Kernel::setArtisan()
method (#15531) - Added a default method for validation message variable replacing (#15527)
- Added support for a schema array in Postgres config (#15535)
- Added
SoftDeletes::isForceDeleting()
method (#15580) - Added support for tasks scheduling using command classes instead of signatures (#15591)
- Added support for passing array of emails/user-objects to
Mailable::to()
(#15603) - Add missing interface methods in
Registrar
contract (#15616)
- Let the queue worker sleep for 1s when app is down for maintenance (#15520)
- Improved validator messages for implicit attributes errors (#15538)
- Use
Carbon::now()->getTimestamp()
instead oftime()
in various places (#15544, #15545, c5984af, #15549) - Removed redundant condition from
updateOrInsert()
(#15540) - Throw
LogicException
on container alias loop (#15548) - Handle empty
$files
inRequest::duplicate()
(#15558) - Support exact matching of custom validation messages (#15557)
- Decode URL in
Request::segments()
andRequest::is()
(#15524) - Replace only the first instance of the app namespace in Generators (#15575)
- Fixed artisan
--env
issue where environment file wasn't loaded (#15629) - Fixed migration with comments using
ANSI_QUOTE
SQL mode (#15620) - Disabled queue worker process forking until it works with AWS SQS (23c1276)
- Fire
Registered
event when a user registers (#15401) - Added
Container::factory()
method (#15415) - Added
$default
parameter to query/eloquent builderwhen()
method (#15428, #15442) - Added missing
$notifiable
parameter toResetPassword::toMail()
(#15448)
- Updated
ServiceProvider
to useresourcePath()
overbasePath()
(#15400) - Throw
RuntimeException
ifpcntl_fork()
doesn't exists (#15393) - Changed visibility of
Container::getAlias()
to public (#15444) - Changed visibility of
VendorPublishCommand::publishTag()
to protected (#15461) - Changed visibility of
TestCase::afterApplicationCreated()
to public (#15493) - Prevent calling
Model
methods when calling them as attributes (#15438) - Default
$callback
tonull
in eloquent builderwhereHas()
(#15475) - Support newlines in Blade's
@foreach
(#15485) - Try to reconnect if connection is lost during database transaction (#15511)
- Renamed
InteractsWithQueue::failed()
tofail()
(e1d60e0)
- Reverted "Allow passing a
Closure
toView::share()
#15312" (#15312) - Resolve issues with multi-value select elements (#15436)
- Fixed issue with
X-HTTP-METHOD-OVERRIDE
spoofing inRequest
(#15410)
- Removed unused
SendsPasswordResetEmails::resetNotifier()
method (#15446) - Removed uninstantiable
Seeder
class (#15450) - Removed unnecessary variable in
AuthenticatesUsers::login()
(#15507)
- Added missing
MailableMailer::later()
method (#15364) - Added missing
$queue
parameter onSyncJob
(#15368) - Added SSL options for PostgreSQL DSN (#15371)
- Added ability to disable touching of parent when toggling relation (#15263)
- Added username, icon and channel options for Slack Notifications (#14910)
- Added missing translation for
mimetypes
validation (#15209, #3921) - Added ability to check if between two times when using scheduler (#15216, #15306)
- Added
X-RateLimit-Reset
header to throttled responses (#15275) - Support aliases on
withCount()
(#15279) - Added
Filesystem::isReadable()
(#15289) - Added
Collection::split()
method (#15302) - Allow passing a
Closure
toView::share()
(#15312) - Added support for
Mailable
messages inMailChannel
(#15318) - Added
with*()
syntax toMailable
class (#15316) - Added
--path
option formigrate:rollback/refresh/reset
(#15251) - Allow numeric keys on
morphMap()
(#15332) - Added fakes for bus, events, mail, queue and notifications (5deab59)
- Update
Model::save()
to returntrue
when no error occurs (#15236) - Optimized performance of
Arr::first()
(#15213) - Swapped
drop()
fordropIfExists()
in all stubs (#15230) - Allow passing object instance to
class_uses_recursive()
(#15223) - Improved handling of failed file uploads during validation (#15166)
- Hide pagination if it does not have multiple pages (#15246)
- Cast Pusher message to JSON in
validAuthentiactoinResponse()
(#15262) - Throw exception if queue failed to create payload (#15284)
- Call
getUrl()
first inFilesystemAdapter::url()
(#15291) - Consider local key in
HasManyThrough
relationships (#15303) - Fail faster by checking Route Validators in likely fail order (#15287)
- Make the
FilesystemAdapter::delete()
behave likeFileSystem::delete()
(#15308) - Don't call
floor()
inCollection::median()
(#15343) - Always return number from aggregate method
sum()
(#15345)
- Reverted "Hide empty paginators" #15125 (#15241)
- Fixed empty
multifile
uploads (#15250) - Fixed regression in
save(touch)
option (#15264) - Fixed lower case model names in policy classes (15270)
- Allow models with global scopes to be refreshed (#15282)
- Fix
ChannelManager::getDefaultDriver()
implementation (#15288) - Fire
illuminate.queue.looping
event before running daemon (#15290) - Check attempts before firing queue job (#15319)
- Fixed
morphTo()
naming inconsistency (#15334)
- Added
required
attributes to auth scaffold (#15087) - Support custom recipient(s) in
MailMessage
notifications (#15100) - Support custom greeting in
SimpleMessage
notifications (#15108) - Added
prependLocation()
method toFileViewFinder
(#15103) - Added fluent email priority setter (#15178)
- Added
send()
andsendNow()
to notification factory contract (0066b5d)
- Defer resolving of PDO connection until needed (#15031)
- Send plain text email along with HTML email notifications (#15016, #15092, #15115)
- Stop further validation if a
required
rule fails (#15089) - Swaps
drop()
fordropIfExists()
in migration stub (#15113) - The
resource_path()
helper now relies onApplication::resourcePath()
(#15095) - Optimized performance of
Str::random()
(#15112) - Show
app.name
in auth stub (#15138) - Switched from
htmlentities()
tohtmlspecialchars()
ine()
helper (#15159) - Hide empty paginators (#15125)
- Fixed
migrate:rollback
withFETCH_ASSOC
enabled (#15088) - Fixes query builder not considering raw expressions in
whereIn()
(#15078) - Fixed notifications serialization mistake in
ChannelManager
(#15106) - Fixed session id collisions (#15206)
- Fixed extending cache expiration time issue in
file
cache (#15164)
- Removed data transformation in
Response::json()
(#15137)
- Added ability to set from address for email notifications (#15055)
- Support implicit keys in
MessageBag::get()
(#15063) - Allow passing of closures to
assertViewHas()
(#15074) - Strip protocol from Route group domains parameters (#15070)
- Support dot notation as callback in
Arr::sort()
(#15050) - Use Redis database interface instead of implementation (#15041)
- Allow closure middleware to be registered from the controller constructor (#15080, abd85c9)
- Fixed plural form of Emoji (#15068)
- Fixed testing of Eloquent model events (#15052)
- Revert changes to Eloquent
Builder
that breaksfirstOr*
methods (#15018)
- Support unversioned assets in
elixir()
function (#14987) - Changed visibility of
BladeCompiler::stripParentheses()
topublic
(#14986) - Use getter instead of accessing the properties directly in
JoinClause::__construct()
(#14984) - Replaced manual comparator with
asort
inCollection::sort()
(#14980) - Use
query()
instead ofinput()
for key lookup inTokenGuard::getTokenForRequest()
(#14985)