- Added
read()andunread()methods toDatabaseNotification(#17243)
- Show seed output prior to running, instead of after (#17318)
- Support starting slash in
elixir()helper (#17359)
- Use regex in
KeyGenerateCommandto matchAPP_KEY(#17151) - Fixed integrity constraints for database session driver (#17301)
- Added
Blueprint::nullableMorphs()(#16879) - Support
BaseCollectioninBelongsToMany::sync()(#16882) - Added
--modelflag tomake:controllercommand (#16787) - Allow notifications to be broadcasted now instead of using the queue (#16867, 40f30f1)
- Support
redirectTo()inRedirectsUsers(#16896) - Added
ArrayTransportto mail component to store Swift messages in memory (#16906, 69d3d04) - Added fallback to
SlackAttachmentnotification (#16912) - Added
Macroabletrait toRedirectResponse(#16929) - Support namespaces when using
make:policy --model(#16981) - Added
HourlyAt()option for scheduled events (#17168)
- Allow SparkPost transport transmission metadata to be set at runtime (#16838)
- Pass keys to
Collection::unique()callback (#16883) - Support calling
MailFake::send()whenbuild()has dependencies (#16918) - Changed
Mailableproperties visibility to public (#16916) - Bind
servecommand to127.0.0.1instead oflocalhost(#16937) - Added
old('remember')call tologin.stub(#16944) - Check for
dbbefore setting presence verifier inValidationServiceProvider(038840d) - Make Eloquent's
getTimeZone()method call adhere toDateTimeInterface(#16955) - Support customizable response in
SendsPasswordResetEmails(#16982) - Stricter comparison when replacing URL for
LocalAdapter(#17097) - Use
notification()relationship inHasDatabaseNotifications(#17093) - Allow float value as expiration in Memcached cache store (#17106)
- Fixed a wildcard issue with
sometimesvalidation rule (#16826) - Prevent error when SqlServer port is empty (#16824)
- Reverted false-positive fix for
date_formatvalidation #16692 (#16845) - Fixed
withCount()aliasing using multiple tables (#16853) - Fixed broken event interface listening (#16877)
- Fixed empty model creation (#16864)
- Fixed column overlapping on using
withCount()onBelongsToMany(#16895) - Fixed
Unique::ignore()issue (#16948) - Fixed logic in
ChannelManager::sendNow()if$channelsisnull(#17068) - Fixed validating distinct for nested keys (#17102)
- Fixed
HasManyThrough::updateOrCreate()(#17105)
- Changed SwiftMailer version to
~5.4(#17131)
- Refactored
ControllerMakeCommandclass (59a1ce2)
- Fixed implicit Router binding through IoC (#16802)
Collection::min()incorrectly excludes0when calculating minimum (#16821)
- Added
Authenticatable::$rememberTokenName(#16617, 38612c0) - Added
Collection::partition()method (#16627, #16644) - Added resource routes translations (#16429, e91f04b)
- Allow
TokenGuardAPI token to be sent through as input (#16766) - Added
Collection::isNotEmpty()(#16797) - Added "evidence" to the list of uncountable words (#16788)
- Added
reply_toto mailer config (#16810, dc2ce4f)
- Added missing
$useReadPdoargument toConnection::selectOne()(#16625) - Preload some files required by already listed files (#16648)
- Clone query for chunking (53f97a0, 32d0f16)
- Return a regular
PDOobject if a persistent connection is requested (#16702, 6b413d5) - Global
toaddress now also applied for theccandbccoptions of an email (#16705) - Don't report exceptions inside queue worker signal handler (#16738)
- Kill timed out queue worker process (#16746)
- Removed unnecessary check in
ScheduleRunCommand::fire()(#16752) - Only guess the ability's name if no fully qualified class name was given (#16807, f79839e)
- Remove falsy values from array in
min()andmax()onCollection(e2d317e)
- Added file existence check to
AppNameCommand::replaceIn()to fix #16575 (#16592) - Check for
nullinseeJsonStructure()(#16642) - Reverted #15264 (#16660)
- Fixed misleading credentials exception when
ExceptionHandleris not bound in container (#16666) - Use
syncas queue name for Sync Queues (#16681) - Fixed
storedAs()andvirtualAs()issue (#16683) - Fixed false-positive
date_formatvalidation (#16692) - Use translator
trans()method inValidator(#16778) - Fixed runtime error in
RouteServiceProviderwhenRoutefacade is not available (#16775)
- Removed hard coded prose from scheduled task email subject (#16790)
- Replaced deprecated
DefaultFinderclass (#16602)
- Added
before_or_equalandafter_or_equalvalidation rules (#16490) - Added fluent builder for
SlackMessageAttachmentField(#16535, db4879a) - Added the possibility to set and get file permissions in
Filesystem(#16560)
- Added additional
keyTypecheck 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
LengthAwarePaginatorfrompaginate()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
AuthenticateSessionmiddleware (fc302a6) - Support arrays in
HasOne::withDefault()(#16382) - Define route basename for resources (#16352)
- Added
$fallbackparameter toRedirector::back()(#16426) - Added support for footer and markdown in
SlackAttachment(#16451) - Added password change feedback auth stubs (#16461)
- Added
nameto default register route (#16480) - Added
ServiceProvider::loadRoutesFrom()method (#16483)
- Use
getKey()instead of$idinPusherBroadcaster(#16438)
- Pass
PheanstalkJobto Pheanstalk'sdelete()method (#16415) - Don't call PDO callback in
reconnectIfMissingConnection()until it is needed (#16422) - Don't timeout queue if
--timeoutis set to0(#16465) - Respect
--forceoption ofqueue:workin 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
$replyTofor email notifications (#16277) - Support
urlconfiguration parameter to generate filesystem disk URL (#16281, dcff158) - Allow
SerializesModelsto restore models excluded by global scope (#16301) - Allow loading specific columns while eager-loading Eloquent relationships (#16327)
- Allow Eloquent
HasOnerelationships to return a "default model" (#16198, 9b59f67) - Allow
SlackAttachmentcolor 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
ordersproperty (#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-IDheader inSesTransport::send()(#16366) - Throw
BroadcastExceptionwhenPusherBroadcaster::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
ManuallyFailedExceptionifInteractsWithQueue::fail()is called manually (#16318, a20fa97) - Catch
Throwablein 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
-rshortcut tomake:controllercommand (#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
doubleasPDO::PARAM_INTon 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
-qshortcut frommake:listenercommand (#16110)
- Added
--resource(or-r) option tomake:modelcommand (#15993) - Support overwriting channel name for broadcast notifications (#16018, 4e30db5)
- Added
Macroabletrait toRule(#16028) - Added
Session::remember()helper (#16041) - Added option shorthands to
make:listenercommand (#16038) - Added
RegistersUsers::registered()method (#16036) - Added
ResetsPasswords::rules()method (#16060) - Added
$pageparameter tosimplePaginate()inBelongsToManyandHasManyThrough(#16075)
- Catch
dns_get_record()exceptions invalidateActiveUrl()(#15979) - Allow reconnect during database transactions (#15931)
- Use studly case for controller names generated by
make:modelcommand (#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
@foreachand@forelseexpressions (#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
Requestsimport from controller stubs (#16011) - Removed unnecessary validation feedback for password confirmation field (#16100)
- Added
--controller(or-c) option tomake:modelcommand (#15795) - Added object based
dimensionsvalidation rule (#15852) - Added object based
inandnot_invalidation rule (#15923, #15951, 336a807) - Added
clear-compiledcommand success message (#15868) - Added
SlackMessage::http()to specify additionalheadersorproxyoptions (#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::$callbackproperty (#15956)
- Total rewrite of middleware sorting logic (6b69fb8, 9cc5334)
- Wrap PostgreSQL database schema changes in a transaction (#15780, #15962)
- Expect
arrayonValidator::explodeRules()(#15838) - Return
nullif an empty key was passed toModel::getAttribute()(#15874) - Support multiple
LengthAwarePaginatoron a single page with different$pageNameproperties (#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:statususing another connection (#15824) - Fixed calling closure based commands (#15873)
- Split
SimpleMessageby all possible EOLs (#15921) - Ensure that the search and the creation/update of Eloquent instances happens on the same connection (#15958)
- Added object based
uniqueandexistsvalidation rules (#15809)
- Added model factory "states" (#14241)
Collection::only()now returns all items if$keysisnull(#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
$amountis zero (#15764, #15779) - Prevent multiple notifications getting sent out when using the
Notificationfacade (#15789)
- Added "furniture" and "wheat" to
Pluralizer::uncountable()(#15703) - Allow passing
$keystoModel::getAttributes()(#15722) - Added database blueprint for soft deletes with timezone (#15737)
- Added given guards to
AuthenticationException(#15745) - Added Seneca quote to
Inspirecommand (#15747) - Added
div#appto auth layout stub (08bcbdb) - Added PHP 7.1 timeout handler to queue worker (cc9e1f0)
- Changed visibility of
Route::getController()to public (#15678) - Changed notifications
idcolumn 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
DaemonCommandcommand name (b681bff)
- Added
serialize()andunserialize()onRedisStore(#15657)
- Use
$signaturecommand style onDaemonCommandandWorkCommand(#15677)
- Added support for priority level in mail notifications (#15651)
- Added missing
$minutesproperty 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
Registrarcontract (#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
LogicExceptionon container alias loop (#15548) - Handle empty
$filesinRequest::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
--envissue where environment file wasn't loaded (#15629) - Fixed migration with comments using
ANSI_QUOTESQL mode (#15620) - Disabled queue worker process forking until it works with AWS SQS (23c1276)
- Fire
Registeredevent when a user registers (#15401) - Added
Container::factory()method (#15415) - Added
$defaultparameter to query/eloquent builderwhen()method (#15428, #15442) - Added missing
$notifiableparameter toResetPassword::toMail()(#15448)
- Updated
ServiceProviderto useresourcePath()overbasePath()(#15400) - Throw
RuntimeExceptionifpcntl_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
Modelmethods when calling them as attributes (#15438) - Default
$callbacktonullin 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
ClosuretoView::share()#15312" (#15312) - Resolve issues with multi-value select elements (#15436)
- Fixed issue with
X-HTTP-METHOD-OVERRIDEspoofing inRequest(#15410)
- Removed unused
SendsPasswordResetEmails::resetNotifier()method (#15446) - Removed uninstantiable
Seederclass (#15450) - Removed unnecessary variable in
AuthenticatesUsers::login()(#15507)
- Added missing
MailableMailer::later()method (#15364) - Added missing
$queueparameter 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
mimetypesvalidation (#15209, #3921) - Added ability to check if between two times when using scheduler (#15216, #15306)
- Added
X-RateLimit-Resetheader to throttled responses (#15275) - Support aliases on
withCount()(#15279) - Added
Filesystem::isReadable()(#15289) - Added
Collection::split()method (#15302) - Allow passing a
ClosuretoView::share()(#15312) - Added support for
Mailablemessages inMailChannel(#15318) - Added
with*()syntax toMailableclass (#15316) - Added
--pathoption 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 returntruewhen 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
HasManyThroughrelationships (#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
multifileuploads (#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.loopingevent before running daemon (#15290) - Check attempts before firing queue job (#15319)
- Fixed
morphTo()naming inconsistency (#15334)
- Added
requiredattributes to auth scaffold (#15087) - Support custom recipient(s) in
MailMessagenotifications (#15100) - Support custom greeting in
SimpleMessagenotifications (#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
requiredrule 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.namein auth stub (#15138) - Switched from
htmlentities()tohtmlspecialchars()ine()helper (#15159) - Hide empty paginators (#15125)
- Fixed
migrate:rollbackwithFETCH_ASSOCenabled (#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
filecache (#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
Builderthat 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
asortinCollection::sort()(#14980) - Use
query()instead ofinput()for key lookup inTokenGuard::getTokenForRequest()(#14985)