Laravel Framework

https://github.com/laravel/framework

Added

  • Added Illuminate/Http/Client/PendingRequest::replaceHeaders() (#47335)
  • Added Illuminate/Notifications/Messages/MailMessage::attachMany() (#47345)

Reverted

  • Revert "[10.x] Remove session on authenticatable deletion v2" (#47354)

Fixed

  • Fixes usage of Redis::many() with empty array (#47307)
  • Fix mapped renderable exception handling (#47347)
  • Avoid duplicates in fillable/guarded on merge in Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php (#47351)

Changed

  • Update Kernel::load() to use same classFromFile logic as events (#47327)
  • Remove redundant 'setAccessible' methods (#47348)

v10.13.1 (2023-06-02)

Added

  • Added Illuminate\Contracts\Database\Query\ConditionExpression interface and functional for this (#47210)
  • Added return type for Illuminate/Notifications/Channels/MailChannel::send() (#47310)

Reverted

  • Revert "[10.x] Fix inconsistentcy between report and render methods" (#47326)

Changed

  • Display queue runtime in human readable format (#47227)

Added

  • Added Illuminate/Hashing/HashManager::isHashed() (#47197)
  • Escaping functionality within the Grammar (#46558)
  • Provide testing hooks in Illuminate/Support/Sleep.php (#47228)
  • Added missing methods to AssertsStatusCodes (#47277)
  • Wrap response preparation in events (#47229)

Fixed

  • Fixed bug when function wrapped around definition of related factory (#47168)
  • Fixed inconsistentcy between report and render methods (#47201)
  • Fixes Model::isDirty() when AsCollection or AsEncryptedCollection have arguments (#47235)
  • Fixed escaped String for JSON_CONTAINS (#47244)
  • Fixes missing output on ProcessFailedException exception (#47285)

Changed

  • Remove useless else statements (#47186)
  • RedisStore improvement - don't open transaction unless all values are serialaizable (#47193)
  • Use carbon::now() to get current timestamp in takeUntilTimeout lazycollection-method (#47200)
  • Avoid duplicates in visible/hidden on merge (#47264)
  • Add a missing semicolon to CompilesClasses (#47280)
  • Send along value to InvalidPayloadException (#47223)

Fixed

  • Fixed escaped String for JSON_CONTAINS (#47244)

Changed

  • Send along value to InvalidPayloadException (#47223)

Added

  • Added Illuminate/Queue/Events/JobTimedOut.php (#47068)
  • Added when() and unless() methods to Illuminate/Support/Sleep (#47114)
  • Adds inline attachments support for markdown mailables (#47140)
  • Added Illuminate/Testing/Concerns/AssertsStatusCodes::assertMethodNotAllowed() (#47169)
  • Added forceCreateQuietly method (#47162)
  • Added parameters to timezone validation rule (#47171)

Fixed

  • Fixes singleton and api singletons creatable|destryoable|only|except combinations (#47098)
  • Don't use empty key or secret for DynamoDBClient (#47144)

Changed

  • Remove session on authenticatable deletion (#47141)
  • Added error handling and ensure re-enabling of foreign key constraints in Illuminate/Database/Schema/Builder::withoutForeignKeyConstraints() (#47182)

Refactoring

  • Remove useless else statements (#47161)

Added

  • Added the ability to extend the generic types for DatabaseNotificationCollection (#47048)
  • Added /Illuminate/Support/Carbon::createFromId() (#47046)
  • Added Name attributes on slots (#47065)
  • Added Precognition-Success header (#47081)
  • Added Macroable trait to Sleep class (#47099)

Fixed

  • Fixed Illuminate/Database/Console/ShowModelCommand::getPolicy() (#47043)

Changed

  • Remove return from channelRoutes method (#47059)
  • Bug in Illuminate/Database/Migrations/Migrator::reset() with string path (#47047)
  • Unify logic around cursor paginate (#47094)
  • Clears resolved instance of Vite when using withoutVite (#47091)
  • Remove workarounds for old Guzzle versions (#47084)

Added

  • Added /Illuminate/Collections/Arr::mapWithKeys() (#47000)
  • Added dd and dump methods to Illuminate/Support/Carbon.php (#47002)
  • Added Illuminate/Queue/Failed/FileFailedJobProvider (#47007)
  • Added arguments to the signed middleware to ignore properties (#46987)

Fixed

  • Added keys length check to prevent mget error in Illuminate/Cache/RedisStore::many() (#46998)
  • 'hashed' cast - do not rehash already hashed value (#47029)

Changed

  • Used Carbon::now() instead of now() (#47017)
  • Use file locks when writing failed jobs to disk (b822d28)
  • Raise visibility of Mailable prepareMailableForDelivery() (#47031)

Added

  • Added $isolated and isolatedExitCode properties to Illuminate/Console/Command (#46925)
  • Added ability to restore/set Global Scopes (#46922)
  • Added Illuminate/Collections/Arr::sortRecursiveDesc() (#46945)
  • Added Illuminate/Support/Sleep (#46904, #46963)
  • Added Illuminate/Database/Eloquent/Concerns/HasAttributes::castAttributeAsHashedString() ([#46947]https://github.com/laravel/framework/pull/46947)
  • Added url support for mail config (#46964)

Fixed

  • Fixed replace missing_unless (89ac58a)
  • Gracefully handle invalid code points in e() (#46914)
  • HasCasts returning false instead of true (#46992)

Changed

  • Use method on UploadedFile to validate image dimensions (#46912)
  • Expose Js::json() helper (#46935)
  • Respect parents on middleware priority (#46972)
  • Do reconnect when redis throws connection lost error (#46989)
  • Throw timeoutException instead of maxAttemptsExceededException when a job times out (#46968)

Added

  • Add new HTTP status assertions (#46841)
  • Allow pruning all cancelled and unfinished queue batches (#46833)
  • Added IGNITION_LOCAL_SITES_PATH to $passthroughVariables in ServeCommand.php (#46857)
  • Added named static methods for middleware (#46362)

Fixed

  • Fix date_format rule throw ValueError (#46824)

Changed

  • Allow separate directory for locks on filestore (#46811)
  • Allow to whereMorphedTo work with null model (#46821)
  • Use pivot model fromDateTime instead of assuming Carbon in Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable::addTimestampsToAttachment() (#46822)
  • Make rules method in FormRequest optional (#46846)
  • Throw LogicException when calling FileFactory@image() if mimetype is not supported (#46859)
  • Improve job release method to accept date instance (#46854)
  • Use foreignUlid if model uses HasUlids trait when call foreignIdFor (#46876)

Changed

  • Make rules method in FormRequest optional (#46846)

Added

  • Added syntax sugar to the Process::pipe method (#46745)
  • Allow specifying index name when calling ForeignIdColumnDefinition@constrained() (#46746)
  • Allow to customise redirect URL in AuthenticateSession Middleware (#46752)
  • Added Class based after validation rules (#46757)
  • Added max exceptions to broadcast event (#46800)

Fixed

  • Fixed compiled view file ends with .php (#46755)
  • Fix validation rule names (#46768)
  • Fixed validateDecimal() (#46809)

Changed

  • Add headers to exception in Illuminate/Foundation/Application::abort() (#46780)
  • Minor skeleton slimming (framework edition) (#46786)
  • Release lock for job implementing ShouldBeUnique that is dispatched afterResponse() (#46806)

Fixed

  • Fixed Cache::spy incompatibility with Cache::get (#46689)

Changed

  • Remove unnecessary parameters in creatable() and destroyable() methods in Illuminate/Routing/PendingSingletonResourceRegistration class (#46677)
  • Allow Event::assertListening to check for invokable event listeners (#46683)
  • Return non-zero exit code for uncaught exceptions (#46541)
  • Release lock for job implementing ShouldBeUnique that is dispatched afterResponse() (#46806)

Changed

  • Changed Illuminate/Process/Factory::pipe() method. It will be run pipes immediately (e34ab39)

Added

  • Allow Illuminate/Foundation/Testing/WithFaker to be used when app is not bound (#46529)
  • Allow Event::assertListening to check for invokable event listeners (#46683)
  • Added Illuminate/Process/Factory::pipe() (#46527)
  • Added Illuminate/Validation/Validator::setValue (#46716)

Fixed

  • PHP 8.0 fix for Closure jobs (#46505)
  • Fix preg_split error when there is a slash in the attribute in Illuminate/Validation/ValidationData (#46549)
  • Fixed Cache::spy incompatibility with Cache::get (#46689)
  • server command: Fixed server Closing output on invalid $requestPort (#46726)
  • Fix nested join when not JoinClause instance (#46712)
  • Fix query builder whereBetween method with carbon date period (#46720)

Changed

  • Removes unnecessary parameters in creatable() / destroyable() methods in Illuminate/Routing/PendingSingletonResourceRegistration (#46677)
  • Return non-zero exit code for uncaught exceptions (#46541)

Added

  • Added trait Illuminate/Foundation/Testing/WithConsoleEvents (#46694)

Changed

  • Added missing ignored methods to Illuminate/View/Component (#46692)
  • console.stub: remove void return type from handle (#46697)

Added

  • Added ability to set a custom class for the AsCollection and AsEncryptedCollection casts (#46619)

Changed

  • Set container instance on session manager (#46621)
  • Added empty string definition to Str::squish function (#46660)
  • Allow $sleepMilliseconds parameter receive a Closure in retry method from PendingRequest (#46653)
  • Support contextual binding on first class callables (de8d515, e511a3b)

Added

  • Added methods to determine if API resource has pivot loaded (#46555)
  • Added caseSensitive flag to Stringable replace function (#46578)
  • Allow insert..select (insertUsing()) to have empty $columns (#46605, 399bff9)
  • Added Illuminate/Database/Connection::selectResultSets() (#46592)

Changed

  • Make sure pivot model has previously defined values (#46559)
  • Move SetUniqueIds to run before the creating event (#46622)

Added

  • Added Illuminate/Cache/CacheManager::setApplication() (#46594)

Fixed

  • Fix infinite loading on batches list on Horizon (#46536)
  • Fix whereNull queries with raw expressions for the MySql grammar (#46538)
  • Fix getDirty method when using AsEnumArrayObject / AsEnumCollection (#46561)

Changed

  • Skip Illuminate/Support/Reflector::isParameterBackedEnumWithStringBackingType for non ReflectionNamedType (#46511)
  • Replace Deprecated DBAL Comparator creation with schema aware Comparator (#46517)
  • Added Storage::json() method to read and decode a json file (#46548)
  • Force cast json decoded failed_job_ids to array in DatabaseBatchRepository (#46581)
  • Handle empty arrays for DynamoDbStore multi-key operations (#46579)
  • Stop adding constraints twice on *Many to *One relationships via one() (#46575)
  • allow override of the Builder paginate() total (#46415)
  • Add a possibility to set a custom on_stats function for the Http Facade (#46569)

Fixed

  • Fixed Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase::expectsDatabaseQueryCount() $connection parameter (#46228)
  • PHP 8.0 fix for Closure jobs (#46505)
  • Fix preg_split error when there is a slash in the attribute (#46549)

Changed

  • Allow WithFaker to be used when app is not bound (#46529)

Changed

  • Move Symfony events dispatcher registration to Console\Kernel (#46508)

Added

  • Added Illuminate/Testing/Concerns/AssertsStatusCodes::assertUnsupportedMediaType() (#46426)
  • Added curl_error_code: 77 to DetectsLostConnections (#46429)
  • Allow for converting a HasMany to HasOne && MorphMany to MorphOne (#46443)
  • Add option to create macroable method for paginationInformation (#46461)
  • Added Illuminate/Filesystem/Filesystem::json() (#46481)

Fixed

  • Fix parsed input arguments for command events using dispatcher rerouting (#46442)
  • Fix enums uses with optional implicit parameters (#46483)
  • Fix deprecations for embedded images in symfony mailer (#46488)

Changed

  • Added alternative database port in Postgres DSN (#46403)
  • Allow calling getControllerClass on closure-based routes (#46411)
  • Remove obsolete method_exists(ReflectionClass::class, 'isEnum') call (#46445)
  • Convert eloquent builder to base builder in whereExists (#46460)
  • Refactor shared static methodExcludedByOptions method to trait (#46498)

Reverted

Fixed

  • Fixes Expression no longer implements Stringable (#46395)

Added

  • Adding Pipeline Facade (#46271)
  • Add Support for SaveQuietly and Upsert with UUID/ULID Primary Keys (#46161)
  • Add charAt method to both Str and Stringable (#46349, dfb59bc2)
  • Adds Countable to the InvokedProcessPool class (#46346)
  • Add processors to logging (placeholders) (#46344)

Fixed

  • Fixed Illuminate/Mail/Mailable::buildMarkdownView() (791f8ea7)
  • FIX on CanBeOneOfMany trait giving erroneous results (#46309)

Changed

  • Use fallback when previous URL is the same as the current in Illuminate/Routing/UrlGenerator::previous() (#46234)
  • Allow override of the Builder paginate() total (#46336)

Added

  • Adding Conditionable train to Logger (#46259)
  • Added "dot" method to Illuminate\Support\Collection class (#46265)
  • Added a "channel:list" command (#46248)
  • Added JobPopping and JobPopped events (#46220)
  • Add isMatch method to Str and Stringable helpers (#46303)
  • Add ArrayAccess to Stringable (#46279)

Reverted

  • Revert "[10.x] Fix custom themes not reseting on Markdown renderer" (#46328)

Fixed

  • Fix typo in function createMissingSqliteDatbase name in src/Illuminate/Database/Console/Migrations/MigrateCommand.php (#46326)

Changed

  • Generate default command name based on class name in ConsoleMakeCommand (#46256)
  • Do not mutate underlying values on redirect (#46281)
  • Do not use null to initialise $lastExecutionStartedAt in ScheduleWorkCommand (#46285)
  • Remove obsolete function_exists('enum_exists') calls (#46319)
  • Cast json decoded failed_job_ids to array in DatabaseBatchRepository::toBatch (#46329)

Fixed

  • Fixed Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase::expectsDatabaseQueryCount() $connection parameter (#46228)
  • Fixed Facade Fake (#46257)

Changed

  • Remove autoload dumping from make:migration (#46215)

Changed

Added

  • Added protected method Illuminate/Http/Resources/Json/JsonResource::newCollection() for simplifies collection customisation (#46217)

Fixed

  • Fixes constructable migrations (#46223)

Changes

  • Accept time when generating ULID in Str::ulid() (#46201)

Reverted

  • Revert changes from Arr::random() (cf3eb90)

Fixed

  • Fixes constructable migrations (#46223)

Reverted

  • Revert changes from Arr::random() (cf3eb90)

Added

  • Add the ability to re-resolve cache drivers (#46203)

Fixed

  • Fixed Illuminate/Collections/Arr::shuffle() for empty array (0c6cae0)

Fixed

  • Fixing issue where 0 is discarded as a valid timestamp (#46158)
  • Fix custom themes not reseting on Markdown renderer (#46200)

Changed

  • Use secure randomness in Arr:random and Arr:shuffle (#46105)
  • Use mixed return type on controller stubs (#46166)
  • Use InteractsWithDictionary in Eloquent collection (#46196)

Fixed

  • Fixed Illuminate/Collections/Arr::shuffle() with empty array (0c6cae0)

Changed

  • Use secure randomness in Arr:random and Arr:shuffle (#46105)

Added

  • Added missing expression support for pluck in Builder (#46146)

Added

  • Register policies automatically to the gate (#46132)

Added

  • Standard Input can be applied to PendingProcess (#46119)

Fixed

  • Fix Expression string casting (#46137)

Changed

  • Add AddQueuedCookiesToResponse to middlewarePriority so it is handled in the right place (#46130)
  • Show queue connection in MonitorCommand (#46122)

Please consult the upgrade guide and release notes in the official Laravel documentation.

Added

  • Added methods to Enumerable contract (#46021)
  • Added new mailer transport for AWS SES V2 API (#45977)
  • Add S3 temporaryUploadUrl method to AwsS3V3Adapter (#45753)
  • Add index hinting support to query builder (#46063)
  • Add mailer name to data for SentMessage and MessageSending events (#46079)
  • Added --pending option to migrate:status (#46089)

Fixed

  • Fixed pdo exception when rollbacking without active transaction (#46017)
  • Fix duplicated columns on select (#46049)
  • Fixes memory leak on anonymous migrations (ā„–46073)
  • Fixed race condition in locks issued by the file cache driver (#46011)

Changed

  • Allow choosing tables to truncate in Illuminate/Foundation/Testing/DatabaseTruncation::truncateTablesForConnection() (#46025)
  • Update afterPromptingForMissingArguments method (#46052)
  • Accept closure in bus assertion helpers (#46075)
  • Avoid mutating the $expectedLitener between loops on Event::assertListening (#46095)

Added

  • Added Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase::expectsDatabaseQueryCount() (#45932)
  • Added pending has-many-through and has-one-through builder (#45894)
  • Added Illuminate/Http/Client/PendingRequest::withUrlParameters() (#45982)

Fixed

  • Fix: prevent duplicated content-type on HTTP client (#45960)
  • Add missing php extensions in composer (#45941)

Changed

  • Command schedule:work minor features: schedule:run output file & environment specific verbosity (#45949)
  • Added missing self reserved word to reservedNames array in Illuminate/Console/GeneratorCommand.php (#46001)
  • pass value along to ttl callback in Illuminate/Cache/Repository::remember() (#46006)
  • Make sure the lock_connection is used for schedule's withoutOverlapping() (#45963)

Fixed

  • Fixed missing_with and missing_with_all validation (#45913)
  • Fixes blade escaped tags issue (#45928)

Changed

  • Trims numeric validation values / parameters (#45912)
  • Random function doesn't generate evenly distributed random chars (#45916)

Reverted

Changed

  • Allow scheme to be specified in Illuminate/Mail/MailManager::createSmtpTransport() (68a8bfc)
  • Accept optional mode in Illuminate/Filesystem/Filesystem::replace() (2664e7f)

Added

  • Added Illuminate/Translation/Translator::stringable() (#45874)
  • Added Illuminate/Foundation/Testing/DatabaseTruncation (#45726)
  • Added @style Blade directive (#45887)

Reverted

Fixed

  • Fixed LazyCollection::makeIterator() to accept non Generator Function (#45881)

Changed

  • Solve data to be dumped for separate schemes (#45805)

Added

  • Added Illuminate/Database/Schema/ForeignKeyDefinition::noActionOnDelete() (#45712)
  • Added new throw helper methods to the HTTP Client (#45704)
  • Added configurable timezone support for WorkCommand output timestamps (#45722)
  • Added support for casting arrays containing enums (#45621)
  • Added "missing" validation rules (#45717)
  • Added /Illuminate/Database/Eloquent/SoftDeletes::forceDeleteQuietly() (#45737)
  • Added Illuminate/Collections/Arr::sortDesc() (#45761)
  • Added CLI Prompts (#45629, #45864)
  • Adds assertJsonIsArray and assertJsonIsObject for TestResponse (#45731)
  • Added Illuminate/Database/Eloquent/Relations/HasOneOrMany::createQuietly() (#45783)
  • Add validation rules: ascii_alpha, ascii_alpha_num, ascii_alpha_dash (#45769)
  • Extract status methods to traits (#45789)
  • Add "addRestoreOrCreate" extension to SoftDeletingScope (#45754)
  • Added connection established event (f850d99)
  • Add forceDeleting event to models (#45836)
  • Add title tag in mail template (#45859)
  • Added new methods to Collection (#45839)
  • Add skip cancelled middleware (#45869)

Fixed

  • Fix flushdb on cluster for PredisClusterConnection.php (#45544)
  • Fix blade tag issue with nested calls (#45764)
  • Fix infinite loop in blade compiler (#45780)
  • Fix ValidationValidator not to accept terminating newline (#45790)
  • Fix stubs publish command generating incorrect controller stubs (#45812)
  • fix: normalize route pipeline exception (#45817)
  • Fix Illuminate Filesystem replace() leaves file executable (#45856)

Changed

  • Ensures channel name matches from start of string (#45692)
  • Replace raw invisible characters in regex expressions with counterpart Unicode regex notations (#45680)
  • Optimize destroy method (#45709)
  • Unify prohibits behavior around prohibits_if (#45723)
  • Removes dependency on bcmath (#45729)
  • Allow brick/math 0.11 also (#45762)
  • Optimize findMany of BelongsToMany (#45745)
  • Ensure decimal rule handles large values (#45693)
  • Backed enum support for @js (#45862)
  • Restart syscalls for SIGALRM when worker times out a job (#45871)
  • Ensure subsiquent calls to Mailable->to() overwrite previous entries (#45885)

Added

  • Added Illuminate/Database/Schema/Builder::withoutForeignKeyConstraints() (#45601)
  • Added fragments() \ fragmentIf() \ fragmentsIf() methods to Illuminate/View/View.php class (#45656, #45669)
  • Added incrementEach() and decrementEach() to Illuminate/Database/Query/Builder (#45577)
  • Added ability to drop an index when modifying a column (#45513)
  • Allow to set HTTP client for mailers (#45684)
  • Added 402 exception view (#45682)
  • Added notFound() helper to Http Client response (#45681)

Fixed

Changed

  • Ignore whitespaces/newlines when finding relations in model:show command (#45608)
  • Fail queued job with a string messag (#45625)
  • Allow fake() helper in unit tests (#45624)
  • allow egulias/email-validator v4 (#45649)
  • Force countBy method in EloquentCollection to return base collection (#45663)
  • Allow for the collection of stubs to be published (#45653)

Added

  • Added Support Lazy Collections in BatchFake::add() (#45507)
  • Added Decimal to list of Numeric rules (#45533)
  • Added Illuminate/Routing/PendingSingletonResourceRegistration::destroyable() (#45549)
  • Added setVisible and setHidden to Eloquent Collection (#45558)

Fixed

  • Fix bound method contextual binding (#45500)
  • Fixed Method explodeExplicitRule with regex rule (#45555)
  • Fixed Illuminate/Database/Query/Builder::whereIntegerInRaw() (#45584)
  • Fixes blade tags (#45490)

Changed

  • Return model when casting attribute (#45539)
  • always show full path to migration in Illuminate/Database/Console/Migrations/MigrateMakeCommand.php (9f6ff48)
  • Remove index name when adding primary key on MySQL (#45515)

Added

  • Added Passthrough PATH variable to serve command (#45402)
  • Added whenHas to JsonResource (#45376)
  • Added ./fleet directory to .gitignore (#45432)
  • Added unless to JsonResource (#45419)

Fixed

  • Fixed credentials check (#45437)
  • Fixed decimal cast precision issue (#45456, #45492)
  • Precognitive validation with nested arrays doesn't throw validation error (#45405)
  • Fixed issue on which class to check increment and decrement methods for custom cast (#45444)

Changed

  • Update decimal validation rule to allow validation of signed numbers (24a48b2)
  • Output only unique asset / preload tags in Vite (#45404)
  • Optimize whereKey method in Query Builder (#45453)
  • Remove extra code in Model.php to optimize performance (#45476)
  • Exception Handler prepareResponse add previous Exception (#45499)

Revert

  • Revert "fix single line @php statements to not be parsed as php blocks" (#45389)

Changed

  • Load schema to in memory database (#45375)

Added

  • Allows the registration of custom, root-level anonymous component search paths. (#45338, 1ff0379)
  • Added decimal validation rule (#45356, e89b2b0)
  • Added align property to button mail component (#45362)
  • Added whereUlid(param) support for routing (#45372)

Fixed

  • Fixed single line @php statements to not be parsed as php blocks in BladeCompiler (#45333)
  • Added missing code to set locale from model preferred locale in Maillable (#45308)

Changed

  • Vite: ability to prevent preload tag generation from attribute resolver callback (#45283)
  • Deprecation Test Improvements (#45317)
  • Do not allow nested arrays in whereIn method (140c3a8)
  • Bump ramsey/uuid (#45367)

Added

  • Added Illuminate/Auth/GuardHelpers::forgetUser() (#45208)
  • Added sort option for schedule:list (#45198)
  • Added ascii and ulid validation rules (#45218)
  • Http client - allow to provide closure as "throwif" condition (#45251)
  • Support '/' as a possible column name in database (#45268)
  • Added Granular notifications queue connections (#45264)
  • Add support for native rename/drop column commands (#45258)
  • Add $encoding parameter to substr method (#45300)
  • Use Macroable in Session facade (#45310)

Fixed

  • Fixed aliasing with cursor pagination (#45188)
  • Fixed email verification request (#45227)
  • Return 500 http error, instead of 200, when dotenv fails to load (#45235)
  • Fixed bug on Job Batchs Table (#45263)
  • Fixed schedule:list crash when call() is given class-string (#45306)
  • Fixed Lack of Memory when failing a job with wrong variable passed on the method fail() (#45291)
  • Fixed errors occurring when encrypted cookies has been tampered with (#45313)
  • bug fix, change array_merge to array_replace to prevent reindex (#45309)

Changed

  • Allow BusFake to use custom BusRepository (#45202)
  • Improved error logging for unmatched routes and route not found (#45206)
  • Improve assertSeeText and assertDontSeeText test methods (#45274)
  • Improved Illuminate/Auth/SessionGuard::clearUserDataFromStorage() (#45305)
  • Allows shouldIgnoresDeprecationError() to be overriden (#45299)

Fixed

  • Fixed email verification request (#45227)

Added

  • Add support for eager loading specific columns to withWhereHas (#45168)
  • Add Policies to Model Show Command (#45153)
  • Added Illuminate/Support/Stringable::whenIsUlid() (#45183)

Fixed

  • Added missing reserved names in GeneratorCommand (#45149)

Changed

  • Allow to pass base64 key to env:encrypt command (#45157)
  • Replace model:show searched value with correct FQCN (#45160)

Changed

  • Improved stubs and Illuminate/Routing/ResourceRegistrar::getResourceMethods() (6ddf3b0)

Revert

  • Revert "[9.x] Create new Json ParameterBag Instance when cloning Request" (#45147)

Fixed

  • Mailable : fixes strict comparison with int value (#45138)
  • Address Dynamic Relation Resolver inconsiency issue with extended Models (#45122)

Added

  • Added --rest option to queue:listen (00a12e2, 82fde9e)
  • Added Illuminate/Support/Stringable::isUlid() (#45100)
  • Add news report_if and report_unless helpers functions (#45093)
  • Add callback to resolve custom mutex name of schedule events (#45126)
  • Add WorkOptions to WorkerStopping Event (#45120)
  • Added singleton and creatable options to Illuminate/Routing/Console/ControllerMakeCommand (#44872)

Fixed

  • Fix pure enums validation (#45121)
  • Prevent test issues with relations with the $touches property (#45118)
  • Fix factory breaking when trying to determine whether a relation is empty (#45135)

Changed

  • Allow set command description via AsCommand attribute (#45117)
  • Updated Mailable to prevent duplicated recipients (#45119)

Added

  • Added Illuminate/Validation/Rules/DatabaseRule::onlyTrashed() (#44989)
  • Add some class rules in class Rule (#44998)
  • Added Illuminate/View/ComponentAttributeBag::missing() (#45016)
  • Added Illuminate/Http/Concerns/InteractsWithInput::whenMissing() (#45019)
  • Add isolation levels to SQL Server Connector (#45023)
  • Fix php artisan serve with PHP_CLI_SERVER_WORKERS > 1 (#45041)
  • Add ability to prune cancelled job batches (#45034)
  • Adding option for custom manifest filename on Vite Facade (#45007)

Fixed

  • Fix deprecation warning when comparing a password against a NULL database password (#44986, 206e465)
  • Outlook web dark mode email layout fix (#45024)

Changed

  • Improves queue:work command output (#44971)
  • Optimize Collection::containsStrict (#44970)
  • Make name required in Illuminate/Testing/TestResponse::assertRedirectToRoute() (98a0301)
  • Strip key, secret and token from root config options on aws clients (#44979)
  • Allow customised implementation of the SendQueuedMailable job (#45040)
  • Validate uuid before route binding query (#44945)

Added

  • Illuminate/Support/Lottery::fix() (7bade4f)

Added

  • Include Eloquent Model Observers in model:show command (#44884)
  • Added "lowercase" validation rule (#44883)
  • Introduce Lottery class (#44894)
  • Added /Illuminate/Testing/TestResponse::assertRedirectToRoute() (#44926)
  • Add uppercase validation rule (#44918)
  • Added saveManyQuietly to the hasOneOrMany and belongsToMany relations (#44913)

Fixed

  • Fix HasAttributes::getMutatedAttributes for classes with constructor args (#44829)

Changed

  • Remove argument assignment for console (#44888)
  • Pass $maxExceptions from mailable to underlying job when queuing (#44903)
  • Make Vite::isRunningHot public (#44900)
  • Add method to be able to override the exception context format (#44895)
  • Add zero-width space to trimmed characters in TrimStrings middleware (#44906)
  • Show error if key:generate artisan command fails (#44927)
  • Update database version check for lock popping for PlanetScale (#44925)
  • Move function withoutTrashed into DatabaseRule (#44938)
  • Use write connection on Schema::getColumnListing() and Schema::hasTable() for MySQL and PostgreSQL (#44946)

Added

  • Added template fragments to Blade (#44774)
  • Added source file to Collection's dd method output (#44793, d2e0e85)
  • Added Illuminate/Support/Testing/Fakes/PendingBatchFake::dispatchAfterResponse() (#44815)
  • Added Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase::assertDatabaseEmpty() (#44810)

Fixed

  • Fixed InteractsWithContainer::withoutMix() (#44822)

Changed

  • Update UpCommand::handle that must return int (#44807)
  • Decouple database component from console component (#44798)
  • Improve input argument parsing for commands (#44662, #44826)
  • Added DatabaseBatchRepository to provides() in BusServiceProvider (#44833)
  • Move reusable onNotSuccessfulTest functionality to TestResponse (#44827)
  • Add CSP nonce to Vite reactRefresh inline script (#44816)
  • Allow route group method to be chained (#44825)
  • Remove __sleep() & __wakeup() from SerializesModels trait. (#44847)
  • Handle SQLite without ENABLE_DBSTAT_VTAB enabled in Illuminate/Database/Console/DatabaseInspectionCommand::getSqliteTableSize() (#44867)
  • Apply force flag when necessary in Illuminate/Queue/Listener (#44862)
  • De-couple Console component from framework (#44864)
  • Update Vite mock to return empty array for preloadedAssets (#44858)

Added

  • Added Illuminate/Routing/Route::flushController() (#44393)
  • Added Illuminate/Session/Store::setHandler() (#44736)
  • Added dictionary to slug helper (#44730)
  • Added ability to set middleware based on notifiable instance and channel (#44767)
  • Added touchQuietly convenience method to Model (#44722)
  • Added Illuminate/Routing/Router::removeMiddlewareFromGroup() (#44780)
  • Allow queueable notifications to set maxExceptions (#44773)
  • Make migrate command isolated (#44743, ac3252a)

Fixed

  • Fixed whenPivotLoaded(As) api resource methods when using Eloquent strict mode (#44792)
  • Fixed components view error when using $attributes in parent view (#44778)
  • Fixed problem with disregarding global scopes when using existOr and doesntExistOr methods on model query (#44795)

Changed

  • Recompiles views when necessary (#44737)
  • Throw meaningful exception when broadcast connection not configured (#44745)
  • Prevents booting of providers when running env:encrypt (#44758)
  • Added nonce for preloaded assets (#44747)
  • Inherit crossorigin attributes while preloading view (#44800)

Fixed

  • Fixes controller computed middleware (#44454)

Added

  • Added optional verbose output when view caching (#44673)
  • Allow passing closure to rescue $report parameter (#44710)
  • Support preloading assets with Vite (#44096)
  • Added Illuminate/Mail/Mailables/Content::htmlString() (#44703)

Fixed

  • Fixed model:show registering getAttribute() as a null accessor (#44683)
  • Fix expectations for output assertions in PendingCommand (#44723)

Added

  • Added rawValue to Database Query Builder (and Eloquent as wrapper) (#44631)
  • Added TransactionCommitting (#44608)
  • Added dontIncludeSource to CliDumper and HtmlDumper (#44623)
  • Added Illuminate/Filesystem/FilesystemAdapter::checksum() (#44660)
  • Added handlers for silently discarded and missing attribute violations (#44664)

Reverted

Changed

  • Create new Json ParameterBag Instance when cloning Request (#44671)
  • Prevents booting providers when running env:decrypt (#44654)

Reverted

  • Reverts micro-optimization on view events (#44653)

Fixed

  • Fixes blade not forgetting compiled views on view:clear (#44643)
  • Fixed Illuminate/Database/Eloquent/Model::offsetExists() (#44642)
  • Forget component's cache and factory between tests (#44648)

Changed

  • Bump Testbench dependencies (#44651)

Fixed

  • Ensures view creators and composers are called when * is present (#44636)

Fixed

  • Fixes livewire components that were using createBladeViewFromString (#pull)

Added

  • Added mailable assertions (#44563)
  • Added Illuminate/Testing/TestResponse::assertContent() (#44580)
  • Added to Illuminate/Console/Concerns/InteractsWithIO::alert() $verbosity param (#44614)

Optimization

  • Makes blade components blazing fast (#44487)

Fixed

  • Fixed Illuminate/Filesystem/Filesystem::relativeLink() (#44519)
  • Fixed for model:show failing with models that have null timestamp columns (#44576)
  • Allow Model::shouldBeStrict(false) to disable "strict mode" (#44627)

Changed

  • Dont require a host for sqlite connections in php artisan db (#44585)
  • Let MustVerifyEmail to be used on models without id as primary key (#44613)
  • Changed Illuminate/Routing/Route::controllerMiddleware() (#44590)

Fixed

  • Remove check for $viewFactory->exists($component) in Illuminate/View/Compilers/ComponentTagCompiler::componentClass (7c6db00)

Added

  • Allow loading trashed models for resource routes (#44405)
  • Added Illuminate/Database/Eloquent/Model::shouldBeStrict() and other (#44283)
  • Controller middleware without resolving controller (#44516)
  • Alternative Mailable Syntax (#44462)

Fixed

  • Fix issue with aggregates (withSum, etc.) for pivot columns on self-referencing many-to-many relations (#44286)
  • Fixes issue using static class properties as blade attributes (#44473)
  • Traversable should have priority over JsonSerializable in EnumerateValues (#44456)
  • Fixed make:cast --inbound so it's a boolean option, not value (#44505)

Changed

  • Testing methods. Making error messages with json_encode more readable (#44397)
  • Have 'Model::withoutTimestamps()' return the callback's return value (#44457)
  • only load trashed models on relevant routes (#44478)
  • Adding additional PHP extensions to shouldBlockPhpUpload Function (#44512)
  • Register cutInternals casters for particularly noisy objects (#44514)
  • Use get methods to access application locale (#44521)
  • return only on non empty response from channels (09d53ee, 3944a3e)
  • Correct channel matching (#44531)
  • Migrate mail components (#44527)

Added

  • Short attribute syntax for Self Closing Blade Components (#44413)
  • Adds support for PHP's BackedEnum to be "rendered" on blade views (#44445)

Fixed

  • Fixed Precognition headers for Symfony responses (#44424)
  • Allow to create databases with dots (#44436)
  • Fixes dd source on windows (#44451)

Changed

  • Adds error output to db command when missing host (#44394)
  • Changed Illuminate/Database/Schema/ForeignIdColumnDefinition::constrained() (#44425)
  • Allow maintenance mode events to be listened to in closure based listeners (#44417)
  • Allow factories to recycle multiple models of a given typ (#44328)
  • Improves dd clickable link on multiple editors and docker environments (#44406)

Added

  • Added Illuminate/Support/Testing/Fakes/MailFake::cc() (#44319)
  • Added Ignore Case of Str::contains and Str::containsAll to Stringable contains and containsAll (#44369)
  • Added missing morphs methods for the ULID support (#44364)
  • Introduce Laravel Precognition (#44339)
  • Added Illuminate/Routing/Route::flushController() (#44386)

Fixed

  • Fixes memory leak on PHPUnit's Annotations registry (#44324, #44336)
  • Fixed Illuminate/Filesystem/FilesystemAdapter::url() with config prefix (#44330)
  • Fixed the "Implicit conversion from float to int loses precision" error in Timebox Class (#44357)

Changed

  • Improves dd source on compiled views (#44347)
  • Only prints source on dd calls from dump.php (#44367)
  • Ensures a Carbon version that supports PHP 8.2 (#44374)

Added

  • Added Illuminate/Routing/Route::flushController() (#44393)

Added

  • New env:encrypt and env:decrypt commands (#44034)
  • Share WithoutOverlapping key across jobs (#44227)
  • Add missing citext type mapping to Illuminate/Database/Console/DatabaseInspectionCommand::$typeMappings (#44237)
  • Short attribute syntax for Blade Components (#44217)
  • Adds source file to dd function output (#44211)
  • Add methods to get request data as integer or float (#44239)
  • Adds Eloquent User Provider query handler (#44226)
  • Added Illuminate/Support/Testing/Fakes/BusFake::dispatchFakeBatch() (#44176)
  • Added methods to cast Stringables (#44238)
  • Added Illuminate/Routing/UrlGenerator::withKeyResolver() (#44254)
  • Add a hook to the serialisation of collections (#44272)
  • Allow enum route bindings to have default values (#44255)
  • Added benchmark utility class (b4293d7, #44297)
  • Added Illuminate/Console/Scheduling/ManagesFrequencies::everyOddHour() (#44288)

Fixed

  • Fix incrementing string keys (#44247)
  • Fix bug in Fluent Class with named arguments in migrations (#44251)
  • Fix "about" command caching report (#44305)
  • Fixes memory leaks (#44306, #44307)

Changed

  • Patch for timeless timing attack vulnerability in user login (#44069)
  • Refactor: register commands in artisan service (#44257)
  • Allow factories to recycle models with for method (#44265)
  • Use dedicated method for placeholder replacement in validator (#44296)

Fixed

  • Avoid Passing null to parameter exception on PHP 8.1 (#43951)

Changed

  • Patch for timeless timing attack vulnerability in user login (#44069)

Added

  • Added unique deferrable initially deferred constants for PostgreSQL (#44127)
  • Request lifecycle duration handler (#44122)
  • Added Model::withoutTimestamps(...) (#44138)
  • Added manifestHash function to Illuminate\Foundation\Vite (#44136)
  • Added support for operator <=> in /Illuminate/Collections/Traits/EnumeratesValues::operatorForWhere() (#44154)
  • Added that Illuminate/Database/Connection::registerDoctrineType() can accept object as well as classname for new doctrine type (#44149)
  • Added Fake Batches (#44104, #44173)
  • Added Model::getAppends() (#44180)
  • Added missing Str::wrap() static method (#44207)
  • Added require symfony/uid (#44202)
  • Make Vite macroable (#44198)

Fixed

  • Async fix in Illuminate/Http/Client/PendingRequest (#44179)
  • Fixes artisan serve command with PHP_CLI_SERVER_WORKERS environment variable (#44204)
  • Fixed InteractsWithDatabase::castAsJson($value) incorrectly handles SQLite Database (#44196)

Changed

  • Improve Blade compilation exception messages (#44134)
  • Improve test failure output (#43943)
  • Prompt to create MySQL db when migrating (#44153)
  • Improve UUID and ULID support for Eloquent (#44146)

Added

  • Allow using a model instance in place of nested model factories (#44107)
  • Added UUID and ULID support for Eloquent (#44074)
  • Implement except method for fake classes to define what should not be faked (#44117)
  • Added interacts with queue middleware to send queued mailable (#44124)
  • Added new exception string to Illuminate/Database/DetectsLostConnections (#44121)

Fixed

Changed

  • Enhance column modifying (#44101)
  • Allow to define which jobs should be actually dispatched when using Bus::fake (#44106)

Added

  • Added stop_buffering config option to logger (#44071)
  • Added read-only filesystem adapter decoration as a config option (#44079)
  • Added scoped filesystem driver (#44105)
  • Add force option to all make commands (#44100)

Fixed

  • Fixed QueryBuilder whereNot with array conditions (#44083)

Changed

  • Passing event into viaQueue and viaConnection of Queued Listener (#44080)
  • Improve testability of batched jobs (#44075)
  • Allow any kind of whitespace in cron expression (#44110)

Added

  • Added RequiredIfAccepted validation rule (#44035)
  • Added Illuminate/Foundation/Vite::assetPath() (#44037)
  • Added ability to discard Eloquent Model changes (#43772)
  • Added ability to determine if attachments exist to Illuminate/Mail/Mailable (#43967)
  • Added Illuminate/Support/Testing/Fakes/BusFake::assertNothingBatched() (#44056)

Reverted

Fixed

  • Avoid Passing null to parameter exception on PHP 8.1 (#43951)
  • Align Remember Me Cookie Duration with CookieJar expiration (#44026)
  • Fix Stringable typehints with Enumerable (#44030)
  • Fixed middleware "SetCacheHeaders" with file responses (#44063)

Changed

  • Don't use locks for queue job popping for PlanetScale's MySQL-compatible Vitess engine (#44027)
  • Avoid matching 'use' in custom Stub templates in Illuminate/Console/GeneratorCommand.php (#44049)

Added

  • Added view data assertions to TestView (#43923)
  • Added Illuminate/Routing/Redirector::getIntendedUrl() (#43938)
  • Added Eloquent mode to prevent prevently silently discarding fills for attributes not in $fillable (#43893)
  • Added Illuminate/Testing/PendingCommand::assertOk() (#43968)
  • Make Application macroable (#43966)
  • Introducing Signal Traps (#43933)
  • Allow registering instances of commands (#43986)
  • Support Enumerable in Stringable (#44012)

Fixed

  • Fixed RoueGroup::merge to format merged prefixes correctly. (#44011)
  • Fixes providesTemporaryUrls on AwsS3V3Adapter (#44009)
  • Fix ordering of stylesheets when using @vite (#43962)

Changed

  • Allow invokable rules to specify custom messsages (#43925)
  • Support objects like GMP for custom Model casts (#43959)
  • Default 404 message on denyAsNotFound (#43901)
  • Changed Illuminate/Container/Container::resolvePrimitive() for isVariadic() (#43985)
  • Allow validator messages to use nested arrays (#43981)
  • Ensure freezeUuids always resets UUID creation after exception in callback (#44018)

Added

  • Add getter and setter for connection in the DatabaseBatchRepository class (#43869)

Fixed

  • Fix for potential bug with non-backed enums (#43842)
  • Patch nested array validation rule regression bug (#43897)
  • Fix registering event listeners with array callback (#43890)

Changed

  • Explicitly add column name to SQLite query in Illuminate/Database/Console/DatabaseInspectionCommand::getSqliteTableSize() (#43832)
  • Allow broadcast on demand notifications (d2b1446)
  • Make Vite::hotFile() public (#43875)
  • Prompt to create sqlite db when migrating (#43867)
  • Call prepare() on HttpException responses (#43895)
  • Make the model:prune command easier to extend (#43919)

Revert

  • Revert "[9.x] Add statusText for an assertion message" (#43831)

Fixed

Added

  • Adding support for non-backed enums in Models (#43728)
  • Added vite asset url helpers (#43702)
  • Added Authentication keyword for SqlServerConnector.php (#43757)
  • Added support for additional where* methods to route groups (#43731)
  • Added min_digits and max_digits validation (#43797)
  • Added closure support to dispatch conditionals in bus (#43784)
  • Added configurable paths to Vite (#43620)

Fixed

  • Fix unique lock release for broadcast events (#43738)
  • Fix empty collection class serialization (#43758)
  • Fixes creation of deprecations channel (#43812)

Changed

  • Improve display of failures for assertDatabaseHas (#43736)
  • Always use the write PDO connection to read the just stored pending batch in bus (#43737)
  • Move unique lock release to method (#43740)
  • Remove timeoutAt fallback from Job base class (#43749)
  • Convert closures to arrow functions (#43778)
  • Use except also in Illuminate/Routing/Middleware/ValidateSignature::handle() (e554d47)
  • Adjust forever time for cookies (#43806)
  • Make string padding UTF-8 safe (f1762ed)

Fixes

Added

  • Added whenNotExactly to Stringable (#43700)
  • Added ability to Model::query()->touch() to mass update timestamps (#43665)

Fixed

  • Prevent error in db/model commands when using unsupported columns (#43635)
  • Fixes ensureDependenciesExist runtime error (#43626)
  • Null value for auto-cast field caused deprication warning in php 8.1 (#43706)
  • db:table command properly handle table who doesn't exist (#43669)

Changed

  • Handle assoc mode within db commands (#43636)
  • Allow chunkById on Arrays, as well as Models (#43666)
  • Allow for int value parameters to whereMonth() and whereDay() (#43668)
  • Cleaning up old if-else statement (#43712)
  • Ensure correct 'integrity' value is used for css assets (#43714)

Added

  • New db:show, db:table and db:monitor commands (#43367)
  • Added validation doesnt_end_with rule (#43518)
  • Added Illuminate/Database/Eloquent/SoftDeletes::restoreQuietly() (#43550)
  • Added mergeUnless to resource ConditionallyLoadsAttributes trait (#43567)
  • Added Illuminate/Support/Testing/Fakes/NotificationFake::sentNotifications() (#43558)
  • Added implode to Passthru in Illuminate/Database/Eloquent/Builder.php (#43574)
  • Make Config repository macroable (#43598)
  • Add whenNull to ConditionallyLoadsAtrribute trait (#43600)
  • Extract child route model relationship name into a method (#43597)

Revert

Fixed

  • Fix unique locking on broadcast events (#43516)
  • Fixes the issue of running docs command on windows (#43566, #43585)
  • Fixes output when running db:seed or using --seed in migrate commands (#43593)

Changed

  • Gracefully fail when unable to locate expected binary on the system for artisan docs command (#43521)
  • Improve output for some Artisan commands (#43547)
  • Alternative database name in Postgres DSN, allow pgbouncer aliased databases to continue working on 9.x (#43542)
  • Allow @class() for component tags (#43140)
  • Attribute Cast Performance Improvements (#43554)
  • Queue worker daemon should also listen for SIGQUIT (#43607)
  • Keep original keys when using Collection->sortBy() with an array of sort operations (#43609)

Added

  • Added whereNot method to Fluent JSON testing matchers (#43383)
  • Added deleteQuietly method to Model and use arrow func for related methods (#43447)
  • Added conditionable trait to Filesystem adapters (#43450)
  • Introduce artisan docs command (#43357)
  • Added Support CSP nonce, SRI, and arbitrary attributes with Vite (#43442)
  • Support conditionables that get condition from target object (#43449)
  • Added whereIn to Illuminate/Routing/RouteRegistrar::allowedAttributes (#43509)

Fixed

  • Prevent redis crash when large number of jobs are scheduled for a specific time (#43310)

Changed

  • Make Command components Factory extensible (#43439)
  • Solve Blade component showing quote formatted for the console (#43446)
  • Improves output capture from serve command (#43461)
  • Allow terser singleton bindings (#43469)

Added

  • Added unique locking to broadcast events (#43416)

Fixed

  • Fixes Artisan serve command on Windows (#43437)

Added

  • Added ability to attach an array of files in MailMessage (#43080)
  • Added conditional lines to MailMessage (#43387)
  • Add support for multiple hash algorithms to Illuminate/Filesystem/Filesystem::hash() (#43407)

Fixed

  • Fixes for model:show when attribute default is an enum (#43370)
  • Fixed DynamoDB locks with 0 seconds duration (#43365)
  • Fixed overriding global locale (#43426)

Changed

  • Round milliseconds in console output runtime (#43400)
  • Improves serve Artisan command (#43375)

Fixed

  • Fix DynamoDB locks with 0 seconds duration (#43365)

Revert

Fixed

  • Fixes default attribute value when using enums on model:show (#43360)

Added

  • Adds fluent File validation rule (#43271)

Revert

Added

  • Added Illuminate/Filesystem/FilesystemAdapter::supportsTemporaryUrl() (#43317)

Fixed

  • Fixes confirm component default value (#43334)

Changed

  • Improves console output when command not found (#43323)

Fixed

  • Fixes usage of Migrator without output (#43326)

Fixed

  • Fixes queue:monitor command dispatching QueueBusy (#43320)
  • Ensure relation names are properly "snaked" in JsonResource::whenCounted() method (#43322)
  • Fixed Bootstrap 5 pagination (#43319)

Added

  • Added "Logs" driver to the about command (#43307)
  • Allows to install doctrine/dbal from model:show command (#43288)
  • Added to stub publish command flag that restricts to only existing files (#43314)

Fixed

  • Fixes for model:show command (#43301)

Changed

  • Handle varying composer -V output (#43286)
  • Replace resolve() with app() for Lumen compatible (#43312)
  • Allow using backed enums as route parameters (#43294)

Added

Revert

Fixed

  • Fix transaction attempts counter for sqlsrv (#43176)

Changed

  • Make assertDatabaseHas failureDescription more multibyte character friendly (#43181)
  • ValidationException summarize only when use strings (#43177)
  • Improve mode function in collection (#43240)
  • clear Facade resolvedInstances in queue worker resetScope callback (#43215)
  • Improves queue:work command (#43252)
  • Remove null default attributes names when UPDATED_AT or CREATED_AT is null at Model::replicate (#43279)
  • Protect against ambiguous columns (#43278)
  • Use readpast query hint instead of holdlock for sqlsrv database queue (#43259)
  • Vendor publish flag that restricts to only existing files (#43212)

Fixed

  • Fixed transaction attempts counter for sqlsrv (#43176)

Changed

  • Clear Facade resolvedInstances in queue worker resetScope callback (#43215)
  • Protect against ambiguous columns (#43278)

Added

  • Added quote from Mustafa Kemal AtatĆ¼rk (#43022)
  • Allow Collection random() to accept a callable (#43028)
  • Added Str::inlineMarkdown() (#43126)
  • Allow authorization responses to specify HTTP status codes (#43097)
  • Added required directive (#43103)
  • Added replicateQuietly to Model (#43141)
  • Added ignore param to ValidateSignature middleware (#43160)

Fixed

  • Fixed forceCreate on MorphMany not returning newly created object (#42996)
  • Fixed missing return in Illuminate/Mail/Attachment::fromStorageDisk() (#43023)
  • Fixed inconsistent content type when using ResponseSequence (#43051)
  • Prevent double throwing chained exception on sync queue (#42950)
  • Avoid matching multi-line imports in GenerateCommand stub templates (#43093)

Changed

  • Disable Column Statistics for php artisan schema:dump on MariaDB (#43027)
  • Bind a Vite Null Object to the Container instead of a Closure in Illuminate/Foundation/Testing/Concerns/InteractsWithContainer::withoutVite() (#43040)
  • Early return when message format is the default in Illuminate/Support/MessageBag::transform() (#43149)

Fixed

  • Fixed forceCreate on MorphMany not returning newly created object (#42996)
  • Prevent double throwing chained exception on sync queue (#42950)

Changed

  • Disable Column Statistics for php artisan schema:dump on MariaDB (#43027)

Added

  • Add new allowMaxRedirects method to PendingRequest (#42902)
  • Add support to detect dirty encrypted model attributes (#42888)
  • Added Vite (#42785)

Fixed

  • Fixed bug on forceCreate on a MorphMay relationship not including morph type (#42929)
  • Fix default parameter bug in routes (#42942)
  • Handle cursor paginator when no items are found (#42963)
  • Fixed Str::Mask() for repeating chars (#42956)
  • Fix undefined constant error when use slot name as key of object (#42943)
  • Fix BC break for Log feature tests (#42987)

Changed

  • Allow instance of Enum pass Enum Rule (#42906)

Fixed

  • Fixed bug on forceCreate on a MorphMay relationship not including morph type (#42929)
  • Handle cursor paginator when no items are found (#42963)
  • Fixed Str::Mask() for repeating chars (#42956)

Added

  • Improve file attachment for mail and notifications (#42563)
  • Introduce Invokable validation classes (#42689)
  • Predis v2.0 (#42577)
  • Added Illuminate/View/Compilers/Concerns/CompilesConditionals::compileReadonly() (#42717)
  • Apply where's from union query builder in cursor pagination (#42651)
  • Added ability to define "with" relations as a nested array (#42690)
  • Added ability to set backoff in broadcast events (#42737)
  • Added host(), httpHost(), schemeAndHttpHost() to Request (#42797)
  • Allow invokable rules to push messages to nested (or other) attributes (#42801)
  • Adds compilePushIf and compileEndpushIf functions to View compiler (#42762)
  • Added: Allow removing token during tests (#42841)
  • Added predefined_constants to reservedNames array in Illuminate/Console/GeneratorCommand (#42832)
  • Handle collection creation around a single enum (#42839)
  • Allow for nullable morphs in whereNotMorphedT (#42878)
  • Introduce a fake() helper to resolve faker singletons, per locale (#42844)
  • Allow handling cumulative query duration limit per DB connection (#42744)
  • Add invokable option to make rule command (#42742)

Fixed

  • Fix deprecation error in the route:list command (#42704)
  • Fixed Request offsetExists without routeResolver (#42754)
  • Fixed: Loose comparison causes the value not to be saved (#42793)
  • Fixed: Fix database session driver keeps resetting CSRF token (#42782)
  • Fixed: Arr::map - Fix map-by-reference w/ built-ins (#42815)
  • Fixed league/flysystem suggest (#42872)

Changed

  • Start session in TestResponse to allow marshalling of error bag from JSON (#42710)
  • Rename methods in Illuminate/Broadcasting/BroadcastManager (753e9fd)
  • Avoid throwing on invalid mime-type in Illuminate/Filesystem/FilesystemAdapter::mimeType() (#42761)
  • Do not resolve already set headers in Illuminate/Filesystem/FilesystemAdapter (#42760)
  • Standardise invokable rule translation functionality (#42873)
  • Clear cast cache when setting attributes using arrow (#42852)

Added

  • Apply where's from union query builder in cursor pagination (#42651)
  • Handle collection creation around a single enum (#42839)

Fixed

  • Fixed Request offsetExists without routeResolver (#42754)
  • Fixed: Loose comparison causes the value not to be saved (#42793)

Added

  • Added Illuminate/Database/Eloquent/Builder::withoutEagerLoad() (#42641)
  • Allow random string generation to be controlled (#42669)
  • Adds doesnt_start_with validation (#42683, de35bf2)
  • Added quarterlyOn cron schedule frequency command (#42692)

Fixed

  • Free reserved memory before handling fatal errors (#42630, #42646)
  • Prevent $mailer being reset when testing mailables that implement ShouldQueue (#42695)
  • Added checks for Pusher 7.1 preps (#42632)
  • Fixed grouping for user authorization (#42664)

Changed

  • Allow assertions against pushed string based pushed jobs (#42676)

Fixed

  • Free reserved memory before handling fatal errors (#42630, #42646)
  • Prevent $mailer being reset when testing mailables that implement ShouldQueue (#42695)

Added

  • Added Eloquent withWhereHas method (#42597)
  • User authentication for Pusher (#42531)
  • Added additional uuid testing helpers (#42619)

Fixed

  • Fix queueable notification's ID overwritten (#42581)
  • Handle undefined array key error in route (#42606)

Deprecated

  • Illuminate/Routing/Redirector::home() (#42600)

Added

  • Added --only-vendor option to route:list command (#42549)
  • Added Illuminate/Http/Client/PendingRequest::throwUnless() (#42556)
  • Added Illuminate/Support/Str::isJson() (#42545)
  • Added Illuminate/Filesystem/Filesystem::isEmptyDirectory() (#42559)
  • Added Add counts to route:list command (#42551)
  • Support kebab case for slot name shortcut (#42574)

Revered

Fixed

  • Fix getting '0' from route parameter in Authorize middleware (#42582)

Changed

  • Retain the original attribute value during validation of an array key with a dot for correct failure message (#42395)
  • Allow bootable test traits to teardown (#42521)
  • Pass thrown exception to $sleepMilliseconds closure in retry helper (#42532)
  • Make HasTimestamps::updateTimestamps chainable (#42533)
  • Remove meaningless parameter in Illuminate/View/Concerns/ManagesEvents (#42546)
  • Map integer parameter to parameter name when resolving binding field (#42571)
  • Conditionable should return HigherOrderWhenProxy only when the args number is exactly 1 (#42555)

Reverted

Changed

  • Retain the original attribute value during validation of an array key with a dot for correct failure message (#42395)

Added

  • Model::whereRelation add callback function (#42491)
  • Add Conditionable Trait to Illuminate\Support\Carbon (#42500)

Fixed

  • Fix afterCommit and DatabaseTransactions (#42502)
  • Fixed regression when only some route parameters are scoped (#42517)

Added

  • Added ability to add table comments for MySQL and Postgres (#42401)
  • Added dynamic trashed factory state (#42414)
  • Added Illuminate/Collections/Arr::prependKeysWith() (#42448)
  • Added bootable traits to TestCase (#42394)

Fixed

  • Fix clone issue on updateOrCreate and firstOrCreate (#42434)
  • Prevent double sanitized key in RateLimiter@tooManyAttempts (#42462)
  • Add flush handler to output buffer for streamed test response (bugfix) (#42481)

Changed

  • Adds attaches a concise error message to SES exceptions (#42426)
  • Use duplicate instead of createFromBase to clone request when routes are cached (#42420)
  • Use model route key when route parameter does not specifiy custom binding field but a different parameter does (#42425)
  • Adds ability to have paginate() $perPage parameter as callable with access to $total (#42429)
  • Extract ServeCommand env list to static property (#42444)
  • Use route parameters in view (#42461)

Fixed

  • Add flush handler to output buffer for streamed test response (bugfix) (#42481)

Changed

  • Use duplicate instead of createFromBase to clone request when routes are cached (#42420)

Added

  • Added Illuminate/Collections/Traits/EnumeratesValues::value() (#42257)
  • Added new TestResponse helper: assertJsonMissingPath (#42361)
  • Added Illuminate/Support/Testing/Fakes/NotificationFake::assertCount() (#42366)
  • Added new DetectLostConnections (#42377, #42382)
  • Added Illuminate/Testing/TestResponse::collect() (#42384)
  • Added full callable support to schedule:list (#42400)
  • Added Illuminate/Collections/Arr::map() (#42398)

Fixed

  • Fixed PruneCommand finding its usage within other traits (#42350)
  • Fix assert that exception is thrown without message (#42360)

Changed

  • Skip parameter parsing for raw post body in HTTP Client (#42364)
  • Consistency between digits and digits_between validation rules (#42358)
  • Corrects the use of "failed_jobs" instead of "job_batches" in BatchedTableCommand (#42389)
  • Update email.blade.php (#42388)
  • Remove old monolog 1.x compat code (#42392)
  • SesTransport: use correct Tags argument (#42390)
  • Implement robust handling of forwarding of exception codes (#42393)

Fixed

  • Fix PruneCommand finding its usage within other traits (#42350)

Changed

  • Consistency between digits and digits_between validation rules (#42358)
  • Corrects the use of "failed_jobs" instead of "job_batches" in BatchedTableCommand (#42389)

Fixed

  • Factory fails to eval models and factories when returned from closure (#42344)

Changed

  • Added is_string check to QueriesRelationships@requalifyWhereTables (#42341)

Fixed

  • Fix TypeError in DeadlockException (#42337)
  • Fixed type mismatch on Pusher::validate_channels() (#42340)

Changed

  • Add custom segments on "remember me" for session rebuild (#42316)

Added

  • Added closure based exceptions testing (#42155)
  • Allow forcing requests made via the Http client to be faked (#42230)
  • Added 'throwIf' method to PendingRequest (#42260)
  • Allow passing key/value arrays to getArguments and getOptions (#42268)
  • Add whereNotMorphedTo, orWhereNotMorphedTo (#42264)
  • Add method to extend localeArray generation (#42275)
  • Added ability to set delay per channel based on notifiable instance (#42239)
  • Added Illuminate/Pagination/CursorPaginator::onLastPage() (#42301)
  • Added findOr method to Query/Builder (#42290)

Fixed

  • Fix too many channels with pusher broadcasting (#42287)
  • Fix Str::Mask() for repeating chars (#42295)
  • Fix EventFake::assertListening() for asserting string-based observer listeners (#42289)
  • Fixed Loose comparison causes the value not to be saved (#41337)
  • Fix multiple dots for digits_between rule (#42330)

Changed

  • Enable to modify HTTP Client request headers when using beforeSending() callback (#42244)
  • Make throttle lock acquisition retry configurable for concurrency limiter (#42242)
  • Defers expanding callables on Factories (#42241)
  • Add wherehas soft deleting scopes (#42100)
  • Improve password checks (#42248)
  • Set relation parent key when using forceCreate on HasOne and HasMany relations (#42281)
  • Make sure the prefix override behaviours are the same between phpredis and predis drivers (#42279)
  • Share logging context across channels and stacks (#42276)

Fixed

  • Fixed multiple dots for digits_between rule (#42330)

Changed

  • Enable to modify HTTP Client request headers when using beforeSending() callback (#42244)
  • Set relation parent key when using forceCreate on HasOne and HasMany relations (#42281)

Added

  • Added Illuminate/Collections/Arr::join() (#42197)
  • Added has and missing methods to ValidatedInput (#42184)
  • Added deprecation stack trace config option (#42235)

Fixed

  • Fix deprecation issue with translator and empty rules (#42216, #42213)

Changed

  • Improve EventFake::assertListening() support for subscribers (#42193)

Fixed

  • Fix refresh during down in the stub (#42217)
  • Fix deprecation issue with translator (#42216)

Added

  • Add the ability to use alias when performing upsert via MySQL (#42053)
  • Illuminate/Routing/Router::middlewareGroup() will support array of the middlewares (#42004, e6b84fb)
  • Added Missing AsCommand attribute on schedule:list (#42069)
  • Add the beforeRefreshingDatabase function to the Testing/RefreshDatabase trait (#42073)
  • Added doesntExpectOutputToContain assertion method (#42096)
  • Added a findOr method to Eloquent (#42092)
  • Allow extension in Illuminate/View/Compilers/Compiler.php (68e41fd)
  • Support 'IS' and 'IS NOT' PostgreSQL operators (#42123)
  • Added str and string methods to Illuminate/Http/Concerns/InteractsWithInput (c9d34b7)
  • Added methods to append and prepend jobs to existing chain (#42138)

Fixes

  • Make it so non-existent jobs run down the failed path instead of crashing (#42079)
  • Fix schedule:work command Artisan binary name (#42083)
  • Fix TrimStrings middleware with non-UTF8 characters (#42065)
  • Copy locale and defaultLocale from original request in Request::createFrom() (#42080)
  • Fix ViewErrorBag for JSON session serialization (#42090)
  • Fix array keys from cached routes in CompiledRouteCollection::getRoutesByMethod() (#42078)
  • Fix json_last_error issue with JsonResponse::setData (#42125)
  • Fix bug in BelongsToMany where non-related rows are returned (#42087)
  • Fix HasAttributes::mutateAttributeForArray when accessing non-cached attribute (#42130)

Changed

  • Make password rule errors translatable (#42060)
  • Redesign of the event:list Command. (#42068)
  • Changed event:list command (#42084)
  • Throw LostDbConnectionException instead of LogicException (#42102)
  • Throw deadlock exception (#42129)
  • Support Arr::forget() for nested ArrayAccess objects (#42142)
  • Allow Illuminate/Collections/Enumerable::jsonSerialize() to return other types (#42133)
  • Update schedule:list colouring output (#42153

Fixed

  • Fix schedule:work command Artisan binary name (#42083)
  • Fix array keys from cached routes in Illuminate/Routing/CompiledRouteCollection::getRoutesByMethod() (#42078)
  • Fix json_last_error issue with Illuminate/Http/JsonResponse::setData (#42125)

Added

  • Add getAllTables support for SQLite and SQLServer schema builders (#41896)
  • Added withoutEagerLoads() method to Builder (#41950)
  • Added 'throw' method to PendingRequest (#41953)
  • Configurable pluralizer language and uncountables (#41941)

Fixed

  • Fixed Error in Illuminate/Routing/Exceptions/StreamedResponseException (#41955)
  • Fix PHP warnings when rendering long blade string (#41956)
  • Fix ExcludeIf regression to use Closure over is_callable() (#41969)
  • Fixes applying replacements to multi-level localization arrays (#42022)

Changed

  • Improved Illuminate/Foundation/Http/Middleware/TrimStrings.php and Str::squish() (#41949, #41971)
  • Use config session domain for maintenance cookie (#41961)
  • Revert lazy command forcing (#41982)

Fixed

  • Backport Fix PHP warnings when rendering long blade string (#41970)

Reverted

  • Revert "Standardize withCount() & withExists() eager loading aggregates (#41943)

Added

  • Added inbound option to CastMakeCommand (#41838)
  • Added a way to retrieve the first column of the first row from a query (#41858)
  • Make DatabaseManager Macroable (#41868)
  • Improve Str::squish() (#41877, #41924)
  • Added option to disable cached view (#41859)
  • Make Connection Class Macroable (#41865)
  • Added possibility to discover anonymous Blade components in other folders (#41637)
  • Added Illuminate/Database/Eloquent/Factories/Factory::set() (#41890)
  • Added multibyte support to string padding helper functions (#41899)
  • Allow to use custom log level in exception handler reporting (#41925)

Fixed

  • Illuminate/Support/Stringable::exactly() with Stringable value (#41846)
  • Fixed afterCommit and RefreshDatabase (#41782)
  • Fix null name for email address in Illuminate/Mail/Message (#41870)
  • Fix seeder property for in-memory tests (#41869)
  • Fix empty paths for server.php (#41933)
  • Fix ExcludeIf constructor (#41931)

Changed

  • Set custom host to the serve command with environment variable (#41831)
  • Add handling of object being passed into old method in Model (#41842)
  • Catch permission exception when creating directory (#41871)
  • Restore v8 behaviour of base query for relations (#41918, #41923)
  • Standardize withCount() & withExists() eager loading aggregates (#41914)

Added

  • Added multibyte support to string padding helper functions (#41899)

Fixed

  • Fixed seeder property for in-memory tests (#41869)

Added

  • Make whereBelongsTo accept Collection (#41733)
  • Database queries containing JSON paths support array index braces (#41767)
  • Fire event before route matched (#41765)
  • Added to Illuminate/Http/Resources/ConditionallyLoadsAttributes::whenNotNull method (#41769)
  • Added "whereIn" route parameter constraint method (#41794)
  • Added Illuminate/Queue/BeanstalkdQueue::bulk() (#41789)
  • Added Illuminate/Queue/SqsQueue::bulk() (#41788)
  • Added String::squish() helper (#41791)
  • Added query builder method whereJsonContainsKey() (#41802)
  • Enable dispatchAfterResponse for batch (#41787)

Fixed

  • Factory generation fixes (#41688)
  • Fixed Http Client throw boolean parameter of retry method (#41762, #41792)
  • Ignore empty redis username string in PhpRedisConnector (#41773)
  • Fixed support of nullable type for AsArrayObject/AsCollection (#41797, 05846e7)
  • Fixed adding jobs from iterable to the pending batch (#41786)
  • Http client: fix retry handling of connection exception (#41811)

Changed

  • Enable batch jobs delay for database queue (#41758)
  • Enable batch jobs delay for redis queue (#41783)
  • Http client: dispatch "response received" event for every retry attempt (#41793)
  • Http Client: provide pending request to retry callback (#41779)
  • Allow non length limited strings and char for postgresql (#41800)
  • Revert some Carbon::setTestNow() removals (#41810)
  • Allow cleanup of databases when using parallel tests (#41806)

Fixed

  • Backport - Fix trashed implicitBinding with child with no softdelete (#41814)
  • Fix assertListening check with auto discovery (#41820)

Added

  • Added whenTableHasColumn and whenTableDoesntHaveColumn on Schema Builder (#41517)
  • Added Illuminate/Mail/Mailable::hasSubject() (#41575)
  • Added Illuminate/Filesystem/Filesystem::hasSameHash() (#41586)

Fixed

  • Fixed deprecation warning in Str::exists() (d39d92d)
  • Fix artisan make:seeder command nested namespace and class name problem (#41534)
  • Fixed Illuminate/Redis/Connections/PhpRedisConnection::handle() (#41546)
  • Stop throwing LazyLoadingViolationException for recently created model instances (#41549)
  • Close doctrineConnection on disconnect (#41584)

Changed

  • Make throttle lock acquisition retry time configurable (#41516)
  • Allows object instead of array when adding to PendingBatch (#41475)
  • Exactly match scheduled command --name in schedule:test (#41528)
  • Handle Symfony defaultName deprecation (#41555, #41595)
  • Improve ScheduleListCommand (#41552, #41535, #41494)
  • Remove useless if statement in Str::mask() (#41570)

Fixed

  • Stop throwing LazyLoadingViolationException for recently created model instances (#41549)
  • Close doctrineConnection on disconnect (#41584)
  • Fix require fails if is_file cached by opcache (#41614)
  • Fix collection nth where step <= offset (#41645)

Reverted

  • Revert "Fix the guard instance used." (#41491)

Added

  • Added callback support on implode Collection method. (#41405)
  • Added Illuminate/Filesystem/FilesystemAdapter::assertDirectoryEmpty() (#41398)
  • Implement email "metadata" for SesTransport (#41422)
  • Make assertPath() accepts Closure (#41409)
  • Added callable support to operatorForWhere on Collection (#41414, #41424)
  • Added partial queue faking (#41425)
  • Added --name option to schedule:test command (#41439)
  • Define Illuminate/Database/Eloquent/Concerns/HasRelationships::newThroughInstance() (#41444)
  • Added Illuminate/Support/Stringable::wrap() (#41455)
  • Adds "freezeTime" helper for tests (#41460)
  • Allow for callables with beforeSending inIlluminate/Http/Client/PendingRequest.php::runBeforeSendingCallbacks() (#41489)

Fixed

  • Fixed deprecation warnings from route:list when filtering on name or domain (#41421)
  • Fixes HTTP::pool response when a URL returns a null status code (#41412)
  • Fixed recaller name resolution in Illuminate/Session/Middleware/AuthenticateSession.php (#41429)
  • Fixed the guard instance used in /Illuminate/Session/Middleware/AuthenticateSession.php (#41447)
  • Fixed route:list --except-vendor hiding Route::view() & Route::redirect() (#41465)

Changed

  • Add null typing to connection property in \Illuminate\Database\Eloquent\Factories\Factory (#41418)
  • Update reserved names in GeneratorCommand (#41441)
  • Redesign php artisan schedule:list Command (#41445)
  • Extend eloquent higher order proxy properties (#41449)
  • Allow passing named arguments to dynamic scopes (#41478)
  • Throw if tag is passed but is not supported in Illuminate/Encryption/Encrypter.php (#41479)
  • Update PackageManifest::$vendorPath initialisation for cases, when composer vendor dir is not in project director (#41463)

Fixed

  • Backport dynamically access batch options (#41361)
  • Fixed get and head options in Illuminate/Http/Client/PendingRequest.php (23ff879)

Fixed

  • Fixed version of laravel

Added

  • Support modifying a char column type (#41320)
  • Add "Mutex" column to 'schedule:list' command (#41338)
  • Allow eloquent whereNot() and orWhereNot() to work on column and value (#41296)
  • Allow VerifyCsrfToken's CSRF cookie to be extended (#41342)
  • Added soleValue() to query builder (#41368)
  • Added lcfirst() to Str and Stringable (#41384)
  • Added retryUntil method to queued mailables (#41393)

Fixed

  • Fixed middleware sorting for authenticating sessions (50b46db)
  • Fixed takeUntilTimeout method of LazyCollection (#41354, #41370)
  • Fixed directory for nested markdown files for mailables (#41366)
  • Prevent serializing default values of queued jobs (#41348)
  • Fixed get() and head() in Illuminate/Http/Client/PendingRequest.php (a54f481)

Changed

  • Don't use global tap helper (#41326)
  • Allow chaining of Illuminate/Console/Concerns/InteractsWithIO::newLine (#41327)
  • set destinations since bcc missing from raw message in Mail SesTransport (8ca43f4)

v8.83.4 (2022-03-08)

Added

  • Added Illuminate/Bus/Batch::__get() (#41361)

Fixed

  • Fixed get and head options in Illuminate/Http/Client/PendingRequest (23ff879)

Added

Changed

Fixed

Fixed

Added

  • Add NotificationFake::assertNothingSentTo() by @axlon (#41232)
  • Support --ssl-ca on schema load and dump by @DeepDiver1975 (#40931)
  • Add whereNot() to Query Builder and Eloquent Builder by @marcovo (#41096)
  • Added support for index and position placeholders in array validation messages by @Bird87ZA (#41123)
  • Add resource binding by @aedart (#41233)
  • Add ability to push additional pipes onto a pipeline via chain($pipes) by @stevebauman (#41256)
  • Add option to filter out routes defined in vendor packages in route:list command by @amiranagram (#41254)

Fixed

  • Query PostgresBuilder fixes for renamed config 'search_path' by @derekmd (#41215)
  • Improve doctypes for Eloquent Factory guessing methods by @bastien-phi (#41245)
  • Fix Conditional::when and Conditional::unless when called with invokable by @bastien-phi (#41270)
  • Improves Support\Collection reduce method type definition by @fdalcin (#41272)
  • Fix inconsistent results of firstOrNew() when using withCasts() by @Attia-Ahmed (#41257)
  • Fix implicitBinding and withTrashed route with child with no SoftDeletes trait by @stein-j (#41282)

Changed

  • Unset Connection Resolver extended callback by @emrancu (#41216)
  • Update Mailgun transport type by @driesvints (#41255)

Added

  • Added Illuminate/Database/Eloquent/Casts/Attribute::make() (#41014)
  • Added Illuminate/Collections/Arr::keyBy() (#41029)
  • Added expectsOutputToContain to the PendingCommand. (#40984)
  • Added ability to supply HTTP client methods with JsonSerializable instances (#41055)
  • Added Illuminate/Filesystem/AwsS3V3Adapter::getClinet() (#41079)
  • Added Support for enum in Builder::whereRelation (#41091)
  • Added X headers when using Mail::alwaysTo (#41101)
  • Added of support Bitwise operators in query (#41112)
  • Integrate Laravel CORS into framework (#41137)
  • Added Illuminate/Support/Str::betweenFirst() (#41144)
  • Allow specifiying custom messages for Rule objects (#41145)

Fixed

  • Fixed Queue Failed_jobs insert issue with Exception contain UNICODE (#41020)
  • Fixes attempt to log deprecations on mocks (#41057)
  • Fixed loadAggregate not correctly applying casts (#41050)
  • Do not transform JsonSerializable instances to array in HTTP client methods (#41077)
  • Fix parsing config('database.connections.pgsql.search_path') (#41088)
  • Eloquent: firstWhere returns Object instead of NULL (#41099)
  • Fixed updated with provided qualified updated_at (#41133)
  • Fix setPriority Call for MailChannel (#41120)
  • Fixed route:list command output (#41177)
  • Fix database migrations $connection property (#41161)

Changed

  • Cursor pagination: convert original column to expression (#41003)
  • Cast $perPage to integer on Paginator (#41073)
  • Restore S3 client extra options (#41097)
  • Use latest() within notifications() in Illuminate/Notifications/HasDatabaseNotifications.php (#41095)
  • Remove duplicate queries to find batch (#41121)
  • Remove redundant check in FormRequest::validated() (#41115)
  • Illuminate/Support/Facades/Storage::fake() changed (#41113)
  • Use coalesce equal as provided by PHP >= 7.4 (#41174)
  • Simplify some conditions with is_countable() (#41168)
  • Pass AWS temporary URL options to createPresignedRequest method (#41156)
  • Let Multiple* exceptions hold the number of records and items found (#41164)

Added

  • Added support of Bitwise opperators in query (#41112)

Fixed

  • Fixes attempt to log deprecations on mocks (#41057)
  • Fixed loadAggregate not correctly applying casts (#41108)
  • Fixed updated with provided qualified updated_at (#41133)
  • Fixed database migrations $connection property (#41161)

Added

Changed

Fixed

Added

  • Add firstOr() function to BelongsToMany relation (#40828)
  • Catch suppressed deprecation logs (#40942)
  • Add doesntContain to higher order proxies (#41034)

Fixed

  • Fix replacing request options (#40954, 30e341b)
  • Fix isRelation() failing to check an Attribute (#40967)
  • Fix enum casts arrayable behaviour (#40999)

Added

Changed

Fixed

Changed

Fixed

Check the upgrade guide in the Official Laravel Upgrade Documentation. Also you can see some release notes in the Official Laravel Release Documentation.

Added

Changed

Fixed

Added

  • Added class and method to create cross joined sequences for factories (#40542)
  • Added Transliterate shortcut to the Str helper (#40681)
  • Added array_keys validation rule (#40720)

Fixed

  • Prevent job serialization error in Queue (#40625)
  • Fixed autoresolving model name from factory (#40616)
  • Fixed : strtotime Epoch doesn't fit in PHP int (#40690)
  • Fixed Stringable ucsplit (#40694, #40699)

Changed

  • Server command: Allow xdebug auto-connect to listener feature (#40673)
  • respect null driver in QueueServiceProvider (9435827, 56d433a)
  • Allow to push and prepend config values on new keys (#40723)

Added

  • Added Illuminate/Support/Stringable::scan() (#40472)
  • Allow caching to be disabled for virtual attributes accessors that return an object (#40519)
  • Added better bitwise operators support (#40529, def671d)
  • Added getOrPut on Collection (#40535)
  • Improve PhpRedis flushing (#40544)
  • Added Illuminate/Support/Str::flushCache() (#40620)

Fixed

  • Fixed Str::headline/Str::studly with unicode and add Str::ucsplit method (#40499)
  • Fixed forgetMailers with MailFake (#40495)
  • Pruning Models: Get the default path for the models from a method instead (#40539)
  • Fix flushdb for predis cluste (#40446)
  • Avoid undefined array key 0 error (#40571)

Changed

  • Allow whitespace in PDO dbname for PostgreSQL (#40483)
  • Allows authorizeResource method to receive arrays of models and parameters (#40516)
  • Inverse morphable type and id filter statements to prevent SQL errors (#40523)
  • Bump voku/portable-ascii to v1.6.1 (#40588, #40610)

Added

  • Allow enums as entity_type in morphs (#40375)
  • Added support for specifying a route group controller (#40276)
  • Added phpredis serialization and compression config support (#40282)
  • Added a BladeCompiler::render() method to render a string with Blade (#40425)
  • Added a method to sort keys in a collection using a callback (#40458)

Changed

  • Convert "/" in -e parameter to "" in Illuminate/Foundation/Console/ListenerMakeCommand (#40383)

Fixed

  • Throws an error upon make:policy if no model class is configured (#40348)
  • Fix forwarded call with named arguments in Illuminate/Filesystem/FilesystemAdapter (#40421)
  • Fix 'strstr' function usage based on its signature (#40457)

Added

  • Added onLastPage method to the Paginator (#40265)
  • Allow method typed variadics dependencies (#40255)
  • Added ably/ably-php to composer.json to suggest (#40277)
  • Implement Full-Text Search for MySQL & PostgreSQL (#40129)
  • Added whenContains and whenContainsAll to Stringable (#40285)
  • Support action_level configuration in LogManager (#40305)
  • Added whenEndsWith(), whenExactly(), whenStartsWith(), etc to Stringable (#40320)
  • Makes it easy to add additional options to PendingBatch (#40333)
  • Added method to MigrationsStarted/MigrationEnded events (#40334)

Fixed

  • Fixed failover mailer when used with Mailgun & SES mailers (#40254)
  • Fixed digits_between with fractions (#40278)
  • Fixed cursor pagination with HasManyThrough (#40300)
  • Fixed virtual attributes (29a6692)
  • Fixed timezone option in schedule:list command (#40304)
  • Fixed Doctrine type mappings creating too many connections (#40303)
  • Fixed of resolving Blueprint class out of the container (#40307)
  • Handle type mismatch in the enum validation rule (#40362)

Changed

  • Automatically add event description when scheduling a command (#40286)
  • Update the Pluralizer Inflector instanciator (#40336)

Fixed

  • Fixed digits_between with fractions (#40278)

Added

  • Added pipeThrough collection method (#40253)

Changed

  • Run clearstatcache after deleting file and asserting Storage using exists/missing (#40257)
  • Avoid constructor call when fetching resource JSON options (#40261)

Added

  • Added schedule:clear-mutex command (#40135)
  • Added ability to define extra default password rules (#40137)
  • Added a mergeIfMissing method to the Illuminate Http Request class (#40116)
  • Added Illuminate/Support/MultipleInstanceManager (40913ac)
  • Added SimpleMessage::lines() (#40147)
  • Added Illuminate/Support/Testing/Fakes/BusFake::assertBatchCount() (#40217)
  • Enable only-to-others functionality when using Ably broadcast driver (#40234)
  • Added ability to customize json options on JsonResource response (#40208)
  • Added Illuminate/Support/Stringable::toHtmlString() (#40247)

Changed

  • Improve support for custom Doctrine column types (#40119)
  • Remove an useless check in Console Application class (#40145)
  • Sort collections by key when first element of sort operation is string (even if callable) (#40212)
  • Use first host if multiple in Illuminate/Database/Console/DbCommand::getConnection() (#40226)
  • Improvement in the Reflector class (#40241)

Fixed

  • Clear recorded calls when calling Http::fake() (#40194)
  • Fixed attribute casting (#40245, c0d9735)

Fixed

  • Fixed prune command with default options (#40127)

Added

  • Attribute Cast / Accessor Improvements (#40022)
  • Added Illuminate/View/Factory::renderUnless() (#40077)
  • Added datetime parsing to Request instance (#39945)
  • Make it possible to use prefixes on Predis per Connection (#40083)
  • Added rule to validate MAC address (#40098)
  • Added ability to define temporary URL macro for storage (#40100)

Fixed

  • Fixed possible out of memory error when deleting values by reference key from cache in Redis driver (#40039)
  • Added Illuminate/Filesystem/FilesystemManager::setApplication() (#40058)
  • Fixed arg passing in doesntContain (739d847)
  • Translate Enum rule message (#40089)
  • Fixed date validation (#40088)
  • Dont allow models and except together in PruneCommand.php (f62fe66)

Changed

  • Passthru Eloquent\Query::explain function to Query\Builder:explain for the ability to use database-specific explain commands (#40075)

Added

  • Added doesntContain method to Collection and LazyCollection (#40044, 3e3cbcf)

Reverted

Added

  • Added possibility to customize child model route binding resolution (#39929)
  • Added Illuminate/Http/Client/Response::reason() (#39972)
  • Added an afterRefreshingDatabase test method (#39978)
  • Added unauthorized() and forbidden() to Illuminate/Http/Client/Response (#39979)
  • Publish view-component.stub in stub:publish command (#40007)
  • Added invisible modifier for MySQL columns (#40002)
  • Added Str::substrReplace() and Str::of($string)->substrReplace() methods (#39988)

Fixed

  • Fixed parent call in view (#39909)
  • Fixed request dump and dd methods (#39931)
  • Fixed php 8.1 deprecation in ValidatesAttributes::checkDateTimeOrder (#39937)
  • Fixed withTrashed on routes check if SoftDeletes is used in Model (#39958)
  • Fixes model:prune --pretend command for models with SoftDeletes (#39991)
  • Fixed SoftDeletes force deletion sets "exists" property to false only when deletion succeeded (#39987)
  • Fixed possible out of memory error when deleting values by reference key from cache in Redis driver (#39939)
  • Fixed Password validation failure to allow errors after min rule (#40030)

Changed

  • Fail enum validation with pure enums (#39926)
  • Remove redundant description & localize template (#39928)
  • Fixes reporting deprecations when logger is not ready yet (#39938)
  • Replace escaped dot with place holder in dependent rules parameters (#39935)
  • passthru from property to underlying query object (127334a)

Fixed

  • Fixed inconsistent escaping of artisan argument (#39953)

Changed

  • Do not return anything Illuminate/Foundation/Application::afterLoadingEnvironment()

Added

  • Added Illuminate/Support/Testing/Fakes/NotificationFake::assertSentTimes() (667cca8)
  • Added Conditionable trait to ComponentAttributeBag (#39861)
  • Added scheduler integration tests (#39862)
  • Added on-demand gate authorization (#39789)
  • Added countable interface to eloquent factory sequence (#39907, 1638472a, #39915)
  • Added Fulltext index for PostgreSQL (#39875)
  • Added method filterNulls() to Arr (#39921)

Fixed

  • Fixes AsEncrypted traits not respecting nullable columns (#39848, 4c32bf8)
  • Fixed http client factory class exists bugfix (#39851)
  • Fixed calls to Connection::rollBack() with incorrect case (#39874)
  • Fixed bug where columns would be guarded while filling Eloquent models during unit tests (#39880)
  • Fixed for dropping columns when using MSSQL as database (#39905)

Changed

  • Add proper paging offset when possible to sql server (#39863)
  • Correct pagination message in src/Illuminate/Pagination/resources/views/tailwind.blade.php (#39894)

Fixed

  • Added phar to list to the shouldBlockPhpUpload in Validator (f647a24)
  • Fixed parent call in View (#39909)

Fixed

  • Fixed for dropping columns when using MSSQL as (#39905)
  • Fixed parent call in View (#39908)

Added

  • Added optional except parameter to the PruneCommand (#39749, be4afcc)
  • Added Illuminate/Foundation/Application::hasDebugModeEnabled() (#39755)
  • Added Illuminate/Support/Facades/Event::fakeExcept() and Illuminate/Support/Facades/Event::fakeExceptFor() (#39752)
  • Added aggregate method to Eloquent passthru (#39772)
  • Added undot() method to Arr helpers and Collections (#39729)
  • Added reverse method to Str (#39816)
  • Added possibility to customize type column in database notifications using databaseType method (#39811)
  • Added Fulltext Index (#39821)

Fixed

  • Fixed bus service provider when loaded outside of the framework (#39740)
  • Fixes logging deprecations when null driver do not exist (#39809)

Changed

  • Validate connection name before resolve queue connection (#39751)
  • Bump Symfony to 5.4 (#39827)
  • Optimize the execution time of the unique method (#39822)

Added

  • Added Illuminate/Foundation/Testing/Concerns/InteractsWithContainer::forgetMock() (#39713)
  • Added custom pagination information in resource (#39600)

Added

  • Added phar to list of shouldBlockPhpUpload() in validator (2d1f76a)

Added

  • Added .phar to blocked PHP extensions in validator (#39666)
  • Allow a Closure to be passed as a ttl in Cache remember() method (#39678)
  • Added Prohibits validation rule to dependentRules property (#39677)
  • Implement lazyById in descending order (#39646)

Fixed

  • Fixed Illuminate/Auth/Notifications/ResetPassword::toMail() (969f101)
  • Fixed assertSoftDeleted & assertNotSoftDeleted (#39673)

Added

  • Added extra method in PasswortReset for reset URL to match the structure of VerifyEmail (#39652)
  • Added support for countables to the Illuminate/Support/Pluralizer::plural() (#39641)
  • Allow users to specify options for migrate:fresh for DatabaseMigration trait (#39637)

Fixed

  • Casts $value to the int only when not null in Illuminate/Database/Query/Builder::limit() (#39644)

Changed

  • Use parents to resolve middleware priority in SortedMiddleware (#39647)

Added

  • Added new line to DetectsLostConnections (#36373)

Fixed

  • Fixed Illuminate\View\ViewException::report() (#36110)
  • Fixed Illuminate\Redis\Connections\PhpRedisConnection::spop() (#36106)
  • Fixed Illuminate/Database/Query/Builder::limit() to only cast integer when given other than null (#39653)
  • Fixes database offset value with non numbers (#39656)

Changed

  • Pipe new through render and report exception methods (#36037)
  • Typecast page number as integer in Illuminate\Pagination\AbstractPaginator::resolveCurrentPage() (#36055)

Fixed

  • Fixes Illuminate/Database/Query/Builder::limit() to only cast integer when given other than null (#39644)

Added

  • Added declined and declined_if validation rules (#39579)
  • Arrayable/collection support for Collection::splice() replacement param (#39592)
  • Introduce @js() directive (#39522)
  • Enum casts accept backed values (#39608)
  • Added a method to the Macroable trait that removes all configured macros. (#39633)

Fixed

  • Fixed auto-generated Markdown views (#39565)
  • DB command: Cope with missing driver parameters for mysql (#39582)
  • Fixed typo in Connection property name in Illuminate/Database/Connection (#39590)
  • Fixed: prevent re-casting of enum values (#39597)
  • Casts value to the int in Illuminate/Database/Query/Builder::limit() (62273d2)
  • Fix $component not being reverted if component doesn't render (#39595)

Changed

  • make:model --all flag would auto-fire make:controller with --requests (#39578)
  • Allow assertion of multiple JSON validation errors. (#39568)
  • Ensure cache directory permissions (#39591)
  • Update placeholders for stubs (#39527)

Fixed

  • Fixed $value in Illuminate/Database/Query/Builder::limit() (ddfa71e)

Changed

  • Use all in Illuminate/Database/Query/Builder::cleanBindings() (74dcc02)

Fixed

  • Fixed problem with fallback in Router (5fda5a3)

Added

  • New flag --requests -R to make:controller and make:model Commands (#39120, 8fbfc9f)
  • Allows Stringable objects as middleware. (#39439, #39449)
  • Introduce Js for encoding data to use in JavaScript (#39389, #39460, bbf47d5)
  • Added new lost connection error message for sqlsrv (#39466)
  • Allow can method to be chained onto route for quick authorization (#39464)
  • Publish provider.stub in stub:publish command (#39491)
  • Added Illuminate/Support/NamespacedItemResolver::flushParsedKeys() (#39490)
  • Accept enums for insert update and where (#39492)
  • Fifo support for queue name suffix (#39497, 12e47bb)

Changed

  • Dont cache ondemand loggers (5afa0f1, bc50a9b)
  • Enforce implicit Route Model scoping (#39440)
  • Ensure event mutex is always removed (#39498)
  • Added missing "flags" to redis zadd options list... (#39538)

Added

  • Added new lost connection error message for sqlsrv (#39466)

Added

  • Improve content negotiation for exception handling (#39385)
  • Added support for SKIP LOCKED to MariaDB (#39396)
  • Custom cast string into Stringable (#39410)
  • Added Illuminate/Support/Str::mask() (#39393)
  • Allow model attributes to be casted to/from an Enum (#39315)
  • Added an Enum validation rule (#39437)
  • Auth: Allows to use a callback in credentials array (#39420)
  • Added success and failure command assertions (#39435)

Fixed

  • Fixed CURRENT_TIMESTAMP as default when changing column (#39377)
  • Make accept header comparison case-insensitive (#39413)
  • Fixed regression with capitalizing translation params (#39424)

Changed

  • Added bound check to env resolving in Illuminate/Foundation/Application::runningUnitTests() (#39434)

Fixed

  • Fixed rate limiting unicode issue (#39375)

Reverted

Fixed

  • Fixed code to address different connection strings for MariaDB in the database queue driver (#39374)
  • Fixed rate limiting unicode issue (#39375)
  • Fixed bug with closure formatting in Illuminate/Testing/Fluent/Concerns/Matching::whereContains() (37217d5)

Refactoring

  • Change whereStartsWith, DocBlock to reflect that array is supported (#39370)

Added

  • Added ThrottleRequestsWithRedis to $middlewarePriority (#39316)
  • Added Illuminate/Database/Schema/ForeignKeyDefinition::restrictOnUpdate() (#39350)
  • Added ext-bcmath as an extension suggestion to the composer.json (#39360)
  • Added TestResponse::dd (#39359)

Fixed

  • TaggedCache flush should also remove tags from cache (#39299)
  • Fixed model serialization on anonymous components (#39319)

Changed

  • Changed to Guess database factory model by default (#39310)

Added

  • Added support for MariaDB to skip locked rows with the database queue driver (#39311)
  • Added PHP 8.1 Support (#39034)

Fixed

  • Fixed translation bug (#39298)
  • Fixed Illuminate/Database/DetectsConcurrencyErrors::causedByConcurrencyError() when code is intager (#39280)
  • Fixed unique bug in Bus (#39302)

Changed

  • Only select related columns by default in CanBeOneOfMany::ofMany (#39307)

Added

  • Added withoutDeprecationHandling to testing (#39261)
  • Added method for on-demand log creation (#39273)
  • Added dateTime to columns that don't need character options (#39269)
  • Added AssertableJson::hasAny (#39265)
  • Added Arr::isList() method (#39277)
  • Apply withoutGlobalScope in CanBeOneOfMany subqueries (#39295)
  • Added Illuminate/Support/Testing/Fakes/BusFake::assertNothingDispatched() (#39286)

Reverted

Added

  • Allow queueing application and service provider callbacks while callbacks are already being processed (#39175, 63dab48)
  • Added ability to validate one of multiple date formats (#39170)
  • Re-add update from support for PostgreSQL (#39151)
  • Added Illuminate/Collections/Traits/EnumeratesValues::reduceSpread() (a01e9ed)
  • Added Illuminate/Testing/TestResponse::assertRedirectContains() (#39233, ff340a6)
  • Added gate policy callback (#39185)
  • Allow Remember Me cookie time to be overriden (#39186)
  • Adds --test and --pest options to various make commands (#38997)
  • Added new lost connection message to DetectsLostConnections for Vapor (#39209)
  • Added Illuminate/Support/Testing/Fakes/NotificationFake::assertSentOnDemand() (#39203)
  • Added Subset in request's collect (#39191)
  • Added Conditional trait to Eloquent Factory (#39228)
  • Added a way to skip count check but check $callback at the same time for AssertableJson->has() (#39224)
  • Added Illuminate/Support/Str::headline() (#39174)

Deprecated

  • Deprecate reduceMany in favor of reduceSpread in Illuminate/Collections/Traits/EnumeratesValues (#39201)

Fixed

  • Fixed HasOneOfMany with callback issue (#39187)

Changed

  • Logs deprecations instead of treating them as exceptions (#39219)

Fixed

  • Add new lost connection message to DetectsLostConnections for Vapor (#39209)

Added

  • Added reduceMany to Collections (#39078)
  • Added Illuminate/Support/Stringable::stripTags() (#39098)
  • Added Illuminate/Console/OutputStyle::getOutput() (#39099)
  • Added lang_path helper function (#39103)
  • Added @aware blade directive (#39100)
  • New JobRetrying event dispatched (#39097)
  • Added throwIf method in Client Response (#39148)
  • Added Illuminate/Collections/Collection::hasAny() (#39155)

Fixed

  • Fixed route groups with no prefix on PHP 8.1 (#39115)
  • Fixed code locating Bearer token in InteractsWithInput (#39150)

Changed

  • Refactoring Illuminate/Log/LogManager::prepareHandler() (#39093)
  • Flush component state when done rendering in View (04fc7c2)
  • Ignore tablespaces in dump (#39126)
  • Update SchemaState Process to remove timeout (#39139)

Added

  • Added new lost connection message to DetectsLostConnections (#39028)
  • Added whereBelongsTo() Eloquent builder method (#38927)
  • Added Illuminate/Foundation/Testing/Wormhole::minute() (#39050)

Fixed

  • Fixed castable value object not serialized correctly (#39020)
  • Fixed casting to string on PHP 8.1 (#39033)
  • Mail empty address handling (#39035)
  • Fixed NotPwnedVerifier failures (#39038)
  • Fixed LazyCollection#unique() double enumeration (#39041)

Changed

  • HTTP client: only allow a single User-Agent header (#39085)

Added

  • Added new lost connection message to DetectsLostConnections (#39028)

Added

  • Added singular syntactic sugar to wormhole (#38815)
  • Added a few PHP 8.1 related changes (#38404, #38961)
  • Dispatch events when maintenance mode is enabled and disabled (#38826)
  • Added assertNotSoftDeleted Method (#38886)
  • Adds new RefreshDatabaseLazily testing trait (#38861)
  • Added --pretend option for model:prune command (#38945)
  • Make PendingMail Conditionable (#38942)
  • Adds --pest option when using the make:test artisan command (#38966)

Reverted

Fixed

  • Fix getDirty method when using AsArrayObject / AsCollection (#38869)
  • Fix sometimes conditions that add rules for sibling values within an array of data (#38899)
  • Fixed Illuminate/Validation/Rules/Password::passes() (#38962)
  • Fixed for custom date castable and database value formatting (#38994)

Changed

  • Make mailable assertions fluent (#38850)
  • Allow request input to be retrieved as a collection (#38832)
  • Allow index.blade.php views for anonymous components (#38847)
  • Changed *ofMany to decide relationship name when it is null (#38889)
  • Ignore trailing delimiter in cache.headers options string (#38910)
  • Only look for files ending with .php in model:prune (#38975)
  • Notification assertions respect shouldSend method on notification (#38979)
  • Convert middleware to array when outputting as JSON in /RouteListCommand (#38953)

Added

  • Added posibility compare custom date/immutable_date using date comparison (#38720)
  • Added policy option to make:model (#38725
  • Allow tests to utilise the null logger (#38785)
  • Added deleteOrFail to Model (#38784)
  • Added assertExists testing method (#38766)
  • Added forwardDecoratedCallTo to Illuminate/Database/Eloquent/Relations/Relation (#38800)
  • Adding support for using a different Redis DB in a Sentinel setup (#38764)

Changed

  • Return on null in Illuminate/Queue/Queue::getJobBackoff() (27bcf13)
  • Provide psr/simple-cache-implementation (#38767)
  • Use lowercase for hmac hash algorithm (#38787)

Added

  • Added the valueOfFail() Eloquent builder method (#38707)

Reverted

Added

  • Allow quiet creation (e9cd94c)
  • Added merge() function to ValidatedInput (#38640)
  • Added support for disallowing class morphs (#38656)
  • Added AssertableJson::each() method (#38684)
  • Added Eloquent builder whereMorphedTo method to streamline finding models morphed to another model (#38668)

Fixed

  • Silence Validator Date Parse Warnings (#38652)

Changed

  • Remove mapWithKeys from HTTP Client headers() methods (#38643)
  • Return a new or existing guzzle client based on context in Illuminate/Http/Client/PendingRequest::buildClient() (#38642)
  • Show a pretty diff for assertExactJson() (#38655)
  • Lowercase cipher name in the Encrypter supported method (#38693)

Fixed

  • Silence validator date parse warnings (#38670)

Added

  • Added updateOrFail method to Model (#38592)
  • Make mail stubs more configurable (#38596)
  • Added prohibits validation (#38612)

Changed

Changed

  • Error out when detecting incompatible DBAL version (#38543)

Added

  • Added exclude validation rule (#38537)
  • Allow passing when callback to Http client retry method (#38531)
  • Added Illuminate/Testing/TestResponse::assertUnprocessable() (#38553)
  • Added the password reset URL to the toMailCallback (#38552)
  • Added a simple where helper for querying relations (#38499)
  • Allow sync broadcast via method (#38557)
  • Make $validator->sometimes() item aware to be able to work with nested arrays (#38443)

Fixed

  • Fixed Blade component falsy slots (#38546)
  • Keep backward compatibility with custom ciphers in Illuminate/Encryption/Encrypter::generateKey() (#38556)
  • Fixed bug discarding input fields with empty validation rules (#38563)

Changed

  • Don't iterate over all collection in Collection::firstOrFail (#38536)
  • Error out when detecting incompatible DBAL version (#38543)

Added

  • Added firstOrFail to Illuminate\Support\Collections and Illuminate\Support\LazyCollections (#38420)
  • Support route caching with trashed bindings (c3ec2f2)
  • Allow only keys directly on safe in FormRequest (5e4ded8)
  • Added default rules in conditional rules (#38450)
  • Added fullUrlWithoutQuery method to Request (#38482)
  • Added --implicit (and -i) option to make:rule (#38480)
  • Added colon port support in serve command host option (#38522)

Changed

  • Testing: Access component properties from the return value of $this->component() (#38396, 42a71fd)
  • Update InteractsWithInput::bearerToken() (#38426)
  • Minor improvements to validation assertions API (#38422)
  • Blade component slot attributes (#38372)
  • Convenient methods for rate limiting (2f93c49)
  • Run event:clear on optimize:clear (a61b24c2)
  • Remove unnecessary double MAC for AEAD ciphers (#38475)
  • Adds Response authorization to Form Requests (#38489)
  • Make TestResponse::getCookie public so it can be directly used in tests (#38524)

Added

  • Added stringable support for isUuid (#38330)
  • Allow for closure reflection on all MailFake assertions (#38328)
  • Added Illuminate/Support/Testing/Fakes/MailFake::assertNothingOutgoing() (363af47)
  • Added Illuminate/Support/Testing/Fakes/MailFake::assertNotOutgoing() (a3658c9)
  • Added Support withTrashed on routes (#38348)
  • Added Failover Swift Transport driver (#38344)
  • Added Conditional rules (#38361)
  • Added assertRedirectToSignedRoute() method for testing responses (#38349)
  • Added Validated subsets (#38366)
  • Share handler instead of client between requests in pool to ensure ResponseReceived events are dispatched in async HTTP Request (#38380)
  • Support union types on event discovery (#38383)
  • Added Assert invalid in testResponse (#38384)
  • Add qualifyColumns method to Model class (#38403)
  • Added ability to throw a custom validation exception (#38406)
  • Support shorter subscription syntax (#38408)

Fixed

  • Handle exceptions in batch callbacks (#38327)
  • Bump AWS PHP SDK (#38297)
  • Fixed firstOrCreate and firstOrNew should merge attributes correctly (#38346)
  • Check for incomplete class to prevent unexpected error when class cannot be loaded in retry command (#38379)

Changed

  • Update the ParallelRunner to allow for a custom Runner to be resolved (#38374)
  • Use Fluent instead of array on Rule::when() (#38397)

Added

  • Added support for GCM encryption (#38190, 827bc1d)
  • Added exception as parameter to the missing() callbacks in Illuminate/Routing/Middleware/SubstituteBindings.php (#38289)
  • Implement TrustProxies middleware (#38295)
  • Added bitwise not operator to Illuminate/Database/Query/Builder.php (#38316)
  • Adds attempt method to RateLimiter (#38313)
  • Added withoutTrashed on Exists rule (#38314)

Changed

  • Wraps column name inside subQuery of hasOneOfMany-relationship (#38263)
  • Change Visibility of the Markdown property in Mailable (#38320)
  • Swap multiple logical OR for in_array when checking date casting (#38307)

Fixed

  • Fixed out of bounds shift and pop behavior in Collection (bd89575)
  • Fixed schedule timezone when using CarbonImmutable (#38297)
  • Fixed isDateCastable for the new immutable_date and immutable_datetime casts (#38294)
  • Fixed Factory hasMany method (#38319)

Fixed

Added

  • Added placeholders replace for accepted_if validation message (#38240)

Fixed

  • Use type hints in cast.stub to match interface (#38234)
  • Some PHP 8.1 fixes (#38245)
  • Fixed aliasing with cursor pagination (#38251)
  • Fixed signed routes (#38249)

Added

  • Added cache_locks table to cache stub (#38152)
  • Added queue:monitor command (#38168)
  • Added twiceDailyAt schedule frequency (#38174)
  • Added immutable date and datetime casting (#38199)
  • Allow the php web server to run multiple workers (#38208)
  • Added accepted_if validation rule (#38210)

Fixed

  • Fixed signed routes with expires parameter (#38111, 732c0e0)
  • Remove call to deleted method in Illuminate/Testing/TestResponse::statusMessageWithException() (cde3662)
  • Fixed previous column for cursor pagination (#38203)

Changed

  • Prevent assertStatus() invalid JSON exception for valid JSON response content (#38192)
  • Bump AWS SDK to ^3.186.4 (#38216)
  • Implement ReturnTypeWillChange for some place (#38221, #38212, #38226)
  • Use actual countable interface on MessageBag (#38227)

Refactoring

  • Remove hardcoded Carbon reference from scheduler event (#38063)

Fixed

Refactoring

  • Remove hardcoded Carbon reference from scheduler event (#38063)

Added

  • Allow shift() and pop() to take multiple items from a collection (#38093)
  • Added hook to configure broadcastable model event (5ca5768, aca6f90)
  • Support a proxy URL for mix hot (#38118)
  • Added Illuminate/Validation/Rules/Unique::withoutTrashed() (#38124)
  • Support job middleware on queued listeners (#38128)
  • Model Broadcasting - Adding broadcastWith() and broadcastAs() support (#38137)
  • Allow parallel testing without database creation (#38143)

Fixed

  • Fixed display of validation errors occurred when asserting status (#38088)
  • Developer friendly message if no Prunable Models found (#38108)
  • Fix running schedule:test on CallbackEvent (#38146)

Changed

  • BelongsToMany->sync() will support touching for pivots when the result contains detached items (#38085)
  • Ability to specify the broadcaster to use when broadcasting an event (#38086)
  • Password Validator should inherit custom error message and attribute (#38114)

Added

  • Allow dynamically customizing connection for queued event listener (#38005, ebc3ce4)
  • Added @class Blade directive (#38016)
  • Accept closure for retry() sleep (#38035)
  • The controller can directly return the stdClass object (#38033)
  • Make FilesystemAdapter macroable (#38030)
  • Track exceptions and display them on failed status checks for dx (#38025)
  • Display unexpected validation errors when asserting status (#38046)
  • Ability to return the default value of a request whenHas and whenFilled methods (#38060)
  • Added Filesystem::replaceInFile() method (#38069)

Fixed

  • Fixed passing cursor to pagination methods (#37996)
  • Fixed issue with cursor pagination and Json resources (#38026)
  • ErrorException: Undefined array key "exception" (#38059)
  • Fixed unvalidated array keys without implicit attributes (#38052)

Changed

  • Passthrough excluded uri's in maintenance mode (#38041)
  • Allow for named arguments via dispatchable trait (#38066)

Added

  • Added ability to cancel notifications immediately prior to sending (#37930)
  • Added the possibility of having "Prunable" models (#37889)
  • Added support for both CommonMark 1.x and 2.x (#37954)
  • Added Illuminate/Validation/Factory::excludeUnvalidatedArrayKeys() (#37943)

Fixed

  • Fixed Illuminate/Bus/PendingBatch::add() (108385b)
  • Cursor pagination fixes (#37915)

Changed

  • Mixed orders in cursor paginate (#37762)
  • Clear config after dumping auto-loaded files (#37985)

Added

  • Adds ResponseReceived events to async requests of HTTP Client (#37917)

Fixed

  • Fixed edge case causing a BadMethodCallExceptions to be thrown when using loadMissing() (#37871)

Fixed

  • Fix edge case causing a BadMethodCallExceptions to be thrown when using loadMissing() (#37871)

Reverted

Fixed

  • Fixed undefined array key in SqlServerGrammar when using orderByRaw (#37859)
  • Fixed facade isMock to recognise LegacyMockInterface (#37882)

Changed

  • Reset the log context after each worker loop (#37865)
  • Improve pretend run Doctrine failure message (#37879)

Added

  • Add context to subsequent logs (#37847)

Added

  • Added parameter casting for cursor paginated items (#37785, 31ebfc8)
  • Added Illuminate/Http/ResponseTrait::statusText() (#37795)
  • Track a loop variable for sequence and pass it with count to closure (#37799)
  • Added "precedence" order to route:list command (#37824)

Fixed

  • Remove ksort in pool results that modifies intended original order (#37775)
  • Make sure availableIn returns positive values in /Illuminate/Cache/RateLimiter::availableIn() (#37809)-
  • Ensure alias is rebound when mocking items in the container in tests (#37810)
  • Move primary after collate in /MySqlGrammar.php modifiers (#37815))

Fixed

  • Order of Modifiers Amended in MySqlGrammar (#37782)

Added

  • Added a queue:prune-failed command (#37696, 7aca658)
  • Added Illuminate/Filesystem/FilesystemManager::build() (#37720, c21fc12)
  • Allow customising the event.stub file (#37761)
  • Added Illuminate/Collections/Collection::sliding() and Illuminate/Collections/LazyCollection::sliding() (#37751)
  • Make Illuminate\Http\Client\Request macroable (#37744)
  • Added GIF, WEBP, WBMP, BMP support to FileFactory::image() (#37743)
  • Dispatch 'connection failed' event in http client (#37740)

Fixed

  • Adds a small fix for unicode with blade echo handlers (#37697)
  • Solve the Primary Key issue in databases with sql_require_primary_key enabled (#37715)

Changed

  • Removed unnecessary checks in RequiredIf validation, fixed tests (#37700)
  • Replace non ASCII apostrophe in the email notification template (#37709)
  • Change the order of the bindings for a Sql Server query with a offset and a subquery order by (#37728, 401928b)
  • Bind mock instances as singletons so they are not overwritten (#37746)
  • Encode objects when casting as JSON (#37759)
  • Call on_stats handler in Http stub callbacks (#37738)

Changed

  • Removed unnecessary checks in RequiredIf validation, fixed tests (#37700)

Added

  • Introduce scoped instances (#37521, 2971b64)
  • Added whereContains AssertableJson method (#37631, 2d2d108)
  • Added Illuminate/Database/Connection::setRecordModificationState() (ee1e6b4)
  • Added match() and matchAll() methods to Illuminate/Support/Str.php (#37642)
  • Copy password rule to current_password (#37650)
  • Allow tap() on Paginator (#37682)

Revert

Fixed

  • Remove illuminate/foundation dependency from Password validation (#37648)
  • Fixed callable password defaults in validator (0b1610f)
  • Fixed dns_get_record loose check of A records for active_url rule (#37675)
  • Type hinted arguments for Illuminate\Validation\Rules\RequiredIf (#37688)
  • Fixed when passed object as parameters to scopes method (#37692)

Fixed

  • Fixed dns_get_record loose check of A records for active_url rule (#37675)
  • Type hinted arguments for Illuminate\Validation\Rules\RequiredIf (#37688)
  • Fixed when passed object as parameters to scopes method (#37692)

Added

  • Allow Custom Notification Stubs (#37584)
  • Added methods for indicating the write connection should be used (94dbf76)
  • Added timestamp reference to schedule:run artisan command output (#37591)
  • Columns in the order by list must be unique (#37582)

Changed

  • Fire a trashed model event and listen to it for broadcasting events (#37618)
  • Cast JSON strings containing single quotes (#37619)

Fixed

  • Fixed for cloning issues with PendingRequest object (#37596, 96518b9)
  • Makes the retrieval of Http client transferStats safe (#37597)
  • Fixed inconsistency in table names in validator (#37606)
  • Fixes for Stringable for views (#37613)
  • Fixed one-of-many bindings (#37616)
  • Fixed infinity loop on transaction committed (#37626)
  • Added missing fix to DatabaseRule::resolveTableName fix #37580 (#37621)

Added

  • Introduce Conditional trait (#37504, 45ff23c, #37561)
  • Allow multiple SES configuration with IAM Role authentication (#37523)
  • Adds class handling for Blade echo statements (#37478)
  • Added Illuminate/Session/DatabaseSessionHandler::setContainer() (7a71c29)
  • Allow connecting to read or write connections with the db command (#37548)
  • Added assertDownloadOffered test method to TestResponse class (#37532)
  • Added Illuminate/Http/Client/Response::close() (#37566)
  • Allow setting middleware on queued Mailables (#37568)
  • Adds new RequestSent and ResponseReceived events to the HTTP Client (#37572)

Changed

  • Rename protected method Illuminate/Foundation/Console/StorageLinkCommand::removableSymlink() to Illuminate/Foundation/Console/StorageLinkCommand::isRemovableSymlink() (#37508)
  • Correct minimum Predis version to 1.1.2 (#37554)
  • Columns in the order by list must be unique (#37550)
  • More Convenient Model Broadcasting (#37491)

Fixed

  • Get queueable relationship when collection has non-numeric keys (#37556)

Added

  • Delegate lazy loading violation to method (#37480)
  • Added force option to Illuminate/Foundation/Console/StorageLinkCommand (#37501, 3e547d2)

Fixed

  • Fixed aggregates with having (#37487, c986e12)
  • Bugfix passing errorlevel when command is run in background (#37479)

Changed

  • Init the traits when the model is being unserialized (#37492)
  • Relax the lazy loading restrictions (#37503)

Added

  • Added Illuminate\Auth\Authenticatable::getAuthIdentifierForBroadcasting() (#37408)
  • Added eloquent strict loading mode (#37363)
  • Added default timeout to NotPwnedVerifier validator (#37440, 45567e0)
  • Added beforeQuery to base query builder (#37431)
  • Added Illuminate\Queue\Jobs\Job::shouldFailOnTimeout() (#37450)
  • Added ValidatorAwareRule interface (#37442)
  • Added model support for database assertions (#37459)

Fixed

  • Fixed eager loading one-of-many relationships with multiple aggregates (#37436)

Changed

  • Improve signed url signature verification (#37432)
  • Improve one-of-many performance (#37451)
  • Update Illuminate/Pagination/Cursor::parameter() (#37458)
  • Reconnect the correct connection when using ::read or ::write (#37471, d1a32f9)

Added

  • Add default "_of_many" to join alias when relation name is table name (#37411)

Changed

  • Allow dababase password to be null in MySqlSchemaState (#37418)
  • Accept any instance of Rule and not just Password in password rule (#37407)

Fixed

  • Fixed aggregates (e.g.: withExists) for one of many relationships (#37413, 498e1a0)

Added

  • Support views in SQLServerGrammar (#37348)
  • Added new assertDispatchedSync methods to BusFake (#37350, 414f382)
  • Added withExists method to QueriesRelationships (#37302)
  • Added ability to define default Password Rule (#37387, f7e5b1c)
  • Allow sending a refresh header with maintenance mode response (#37385)
  • Added loadExists on Model and Eloquent Collection (#37388)
  • Added one-of-many relationship (inner join) (#37362)

Changed

  • Avoid deprecated guzzle code (#37349)
  • Make AssertableJson easier to extend by replacing self with static (#37380)
  • Raise ScheduledBackgroundTaskFinished event to signal when a run in background task finishes (#37377)

Added

  • Added Illuminate\Database\Eloquent\Model::updateQuietly() (#37169)
  • Added Illuminate\Support\Str::replace() (#37186)
  • Added Model key extraction to id on whereKey() and whereKeyNot() (#37184)
  • Added support for Pusher 6.x (#37223, 819db15)
  • Added Illuminate/Foundation/Http/Kernel::getMiddlewarePriority() (#37271)
  • Added cursor pagination (aka keyset pagination) (#37216, #37315)
  • Support mass assignment to SQL Server views (#37307)
  • Added Illuminate/Support/Stringable::unless() (#37326)

Fixed

  • Fixed Illuminate\Database\Query\Builder::offset() with non numbers $value (#37164)
  • Treat missing UUID in failed Queue Job as empty string (failed driver = database) (#37251)
  • Fixed fields not required with required_unless (#37262)
  • SqlServer Grammar: Bugfixes for hasTable and dropIfExists / support for using schema names in these functions (#37280)
  • Fix PostgreSQL dump and load for Windows (#37320)

Changed

  • Add fallback when migration is not anonymous class (#37166)
  • Ably expects clientId as string in Illuminate\Broadcasting\Broadcasters\AblyBroadcaster::validAuthenticationResponse() (#37249)
  • Computing controller middleware before getting excluding middleware (#37259)
  • Update mime extension check (#37332)
  • Added exception to chunkById() when last id cannot be determined (#37294)

Added

  • Support mass assignment to SQL Server views (#37307)

Fixed

  • Fixed Illuminate\Database\Query\Builder::offset() with non numbers $value (#37164)
  • Fixed unless rules (#37291)

Changed

  • Allow reporting reportable exceptions with the default logger (#37235)

Added

  • Added Illuminate\Database\Eloquent\Builder::withOnly() (#37144)
  • Added Illuminate\Bus\PendingBatch::add() (#37151)

Fixed

  • Fixed Cache store with a name other than 'dynamodb' (#37145)

Changed

  • Added has environment variable to startProcess method in ServeCommand (#37142)
  • Some cast to int in Illuminate\Database\Query\Grammars\SqlServerGrammar (09bf145)

Fixed

  • Fixed Cache store with a name other than 'dynamodb' (#37145)

Changed

  • Some cast to int in Illuminate\Database\Query\Grammars\SqlServerGrammar (09bf145)

Added

  • Added Illuminate\Collections\Collection::sole() method (#37034)
  • Support url for php artisan db command (#37064)
  • Added Illuminate\Foundation\Bus\DispatchesJobs::dispatchSync() (#37063)
  • Added Illuminate\Cookie\CookieJar::expire() (#37072, fa3a14f)
  • Added Illuminate\Database\DatabaseManager::setApplication() (#37068)
  • Added Illuminate\Support\Stringable::whenNotEmpty() (#37080)
  • Added Illuminate\Auth\SessionGuard::attemptWhen() (#37090, e3fcd97)
  • Added password validation rule (#36960)

Fixed

  • Fixed JsonResponse::fromJasonString() double encoding string (#37076)
  • Fallback to primary key if owner key doesnt exist on model at all in MorphTo relation (a011109)
  • Fixes for PHP 8.1 (#37087, #37101)
  • Do not execute beforeSending callbacks twice in HTTP client (#37116)
  • Fixed nullable values for required_if (#37128, 86fd558)

Changed

  • Schedule list timezone command (#37117)

Fixed

Added

  • Added a wordCount() string helper (#36990)
  • Allow anonymous and class based migration coexisting (#37006)
  • Added Illuminate\Broadcasting\Broadcasters\PusherBroadcaster::setPusher() (#37033)

Fixed

  • Fixed required_if boolean validation (#36969)
  • Correctly merge object payload data in Illuminate\Queue\Queue::createObjectPayload() (#36998)
  • Allow the use of temporary views for Blade testing on Windows machines (#37044)
  • Fixed Http::withBody() not being sent (#37057)

Fixed

  • Fixed required_if boolean validation (#36969)

Added

  • Allow to retry jobs by queue name (#36898, f2d9b59, c351a30)
  • Added strings to the DetectsLostConnections.php (4210258)
  • Allow testing of Blade components that return closures (#36919)
  • Added anonymous migrations (#36906)
  • Added Session\Store::missing() method (#36937)
  • Handle concurrent asynchronous requests in the HTTP client (#36948, 245a712)
  • Added tinyText data type to Blueprint and to available database grammars (#36949)
  • Added a method to remove a resolved view engine (#36955)
  • Added Illuminate\Database\Eloquent\Model::getAttributesForInsert() protected method (9a9f59f, 314bf87)

Fixed

  • Fixed clone() on EloquentBuilder (#36924)

Changed

  • Model::delete() throw LogicException not Exception (#36914)
  • Make pagination linkCollection() method public (#36959)

Added

  • Added strings to the DetectsLostConnections.php (4210258)
  • Revert blade changes (#36902)

Fixed

  • Fixed escaping within quoted strings in blade (#36893)

Changed

  • Call transaction callbacks after updating the transaction level (#36890, #36892)
  • Support maxExceptions option on queued listeners (#36891)

Revert

Added

  • Added support useCurrentOnUpdate for MySQL datetime column types (#36817)
  • Added dispatch_sync() helper (#36835)
  • Allowing skipping TransformRequests middlewares via Closure (#36856)
  • Added type option to make controller command (#36853)
  • Added missing return $this to Illuminate\Support\Manager::forgetDrivers() (#36859)
  • Added unfinished option to PruneBatchesCommand (#36877)
  • Added a simple Str::repeat() helper function (#36887)

Fixed

  • Fixed getMultiple and increment / decrement on tagged cache (0d21194)
  • Implement proper return types in cache increment and decrement (#36836)
  • Fixed blade compiler regex issue (#36843, #36848)
  • Added missing temporary_url when creating flysystem (#36860)
  • Fixed PostgreSQL schema:dump when read/write hosts are arrays (#36881)

Changed

  • Improve the exception thrown when JSON encoding response contents fails in Response::setContent() (#36851, #36868)
  • Revert isDownForMaintenance function to use file_exists() (#36889)

Fixed

  • Fixed setting DynamoDB credentials (#36822)

Added

  • Added support of DynamoDB in CI suite (#36749)
  • Support username parameter for predis (#36762)
  • Added missing months() to Wormhole (#36808)

Deprecated

  • Deprecate MocksApplicationServices trait (#36716)

Fixed

  • Fixes missing lazy() and lazyById() on BelongsToMany and HasManyThrough relation query builder (#36758)
  • Ensure the compiled view directory exists (#36772)
  • Fix Artisan test method PendingCommand::doesntExpectOutput() always causing a failed test (#36806)
  • FIXED: The use of whereHasMorph in a whereHas callback generates a wrong sql statements (#36801)

Changed

  • Allow lazy collection to be instantiated from a generator (#36738)
  • Use qualified column names in pivot query (#36720)
  • Octane Prep (#36777)

Refactoring

  • Remove useless loop in Str::remove() (#36722)

Fixed

  • Fixed setting DynamoDB credentials (#36822)

Added

  • Added support of DynamoDB in CI suite (#36749)
  • Support username parameter for predis (#36762)

Changed

  • Use qualified column names in pivot query (#36720)

Inspiring

  • Added more inspiring quotes (92b7bde)

Added

  • Added WSREP communication link failure for lost connection detection (#36668)
  • Added "exclude-path" option to route:list command (#36619, 76e11ee)
  • Added Illuminate\Support\Str::remove() and Illuminate\Support\Stringable::remove() methods (#36639, 7b0259f, 20e2470)
  • Added Illuminate\Database\Eloquent\Relations\MorphPivot::getMorphType() (#36640, 7e08215)
  • Added assertion to verify type of key in JSON (#36638)
  • Added prohibited validation rule (#36667)
  • Added strict comparison to distinct validation rule (#36669)
  • Added Illuminate\Translation\FileLoader::getJsonPaths() (#36689)
  • Added Illuminate\Support\Testing\Fakes\EventFake::assertAttached() (#36690)
  • Added lazy() and lazyById() methods to Illuminate\Database\Concerns\BuildsQueries (#36699)

Fixed

  • Fixes the issue using cache:clear with PhpRedis and a clustered Redis instance. (#36665)
  • Fix replacing required :input with null on PHP 8.1 in Illuminate\Validation\Concerns\FormatsMessages::getDisplayableValue() (#36622)
  • Fixed artisan schema:dump error (#36698)

Changed

  • Adjust Fluent Assertions (#36620)
  • Added timestamp reference to schedule:work artisan command output (#36621)
  • Expect custom markdown mailable themes to be in mail subdirectory (#36673)
  • Throw exception when unable to create LockableFile (#36674)

Refactoring

  • Always prefer typesafe string comparisons (#36657)

Added

  • Added WSREP communication link failure for lost connection detection (#36668)

Fixed

  • Fixes the issue using cache:clear with PhpRedis and a clustered Redis instance. (#36665)

Added

  • Added Illuminate\Database\Connection::forgetRecordModificationState() (#36617)

Reverted

  • Reverted "Container - detect circular dependencies" (332844e)

Added

  • Added broken pipe exception as lost connection error (#36601)
  • Added missing option to resource (#36562)
  • Introduce StringEncrypter interface (#36578)

Fixed

  • Fixed returns with Mail & Notification components (#36559)
  • Stack driver fix: respect the defined processors in LogManager (#36591)
  • Require the correct password to rehash it when logging out other devices (#36608, 1e61612)

Changed

  • Allow nullable columns for AsArrayObject/AsCollection casts (#36526)
  • Accept callable class for reportable and renderable in exception handler (#36551)
  • Container - detect circular dependencies (dd7274d, a712f72, 6f9bb4c)
  • Initialize CronExpression class using new keyword (#36600)
  • Use different config key for overriding temporary url host in AwsTemporaryUrl method (#36612)

Added

  • Added broken pipe exception as lost connection error (#36601)

Changed

  • Changed Illuminate\Queue\Middleware\ThrottlesExceptions (b8a70e9)

Added

  • Phpredis lock serialization and compression support (#36412, 10f1a93)
  • Added Fluent JSON Assertions (#36454)
  • Added methods to dump requests of the Laravel HTTP client (#36466)
  • Added ThrottlesExceptions and ThrottlesExceptionsWithRedis job middlewares for unstable services (#36473, 21fee76, 36518, 37e48ba)
  • Added support to Eloquent Collection on Model::destroy() (#36497)
  • Added rest option to php artisan queue:work command (#36521, c6ea49c)
  • Added prohibited_if and prohibited_unless validation rules (#36516)
  • Added class argument to Illuminate\Database\Console\Seeds\SeedCommand (#36513)

Fixed

  • Fix validator treating null as true for (required|exclude)_(if|unless) due to loose in_array() check (#36504)

Changed

  • Delete existing links that are broken in Illuminate\Foundation\Console\StorageLinkCommand (#36470)
  • Use user provided url in AwsTemporaryUrl method (#36480)
  • Allow to override discover events base path (#36515)

Fixed

  • Fix validator treating null as true for (required|exclude)_(if|unless) due to loose in_array() check (#36504)

Changed

  • Delete existing links that are broken in Illuminate\Foundation\Console\StorageLinkCommand (#36470)

Added

  • Added new VendorTagPublished event (#36458)
  • Added new Stringable::test() method (#36462)

Reverted

Changed

  • Make user policy command fix (Windows) (#36464)

Reverted

Fixed

  • Fixed formatWheres() methods in DatabaseRule (#36441)

Added

  • Added new line to DetectsLostConnections (#36373)
  • Added Illuminate\Cache\RateLimiting\Limit::perMinutes() (#36352, 86d0a5c)
  • Make Database Factory macroable (#36380)
  • Added stop on first failure for Validators (39e1f84)
  • Added containsOneItem() method to Collections (#36428, 5b7ffc2)

Changed

  • Respect custom route key with explicit route model binding (#36375)
  • Add Buffered Console Output (#36404)
  • Don't flash 'current_password' input (#36415)
  • Check for context method in Exception Handler (#36424)

Added

  • Added new line to DetectsLostConnections (#36373)

Added

  • Support username parameter for predis (#36299)
  • Adds "setUpTestDatabase" support to Parallel Testing (#36301)
  • Added support closures in sequences (3c66f6c)
  • Added gate evaluation event (0c6f5f7)
  • Added a collect method to the HTTP Client response (#36331)
  • Allow Blade's service injection to inject services typed using class name resolution (#36356)

Fixed

  • Fixed: Using withoutMiddleware() and a closure-based middleware on PHP8 throws an exception (#36293)
  • Fixed: The label for page number in pagination links should always be a string (#36292)
  • Clean up custom Queue payload between tests (#36295)
  • Fixed flushDb (cache:clear) for redis clusters (#36281)
  • Fixed retry command for encrypted jobs (#36334, 2fb5e44)
  • Make sure trait_uses_recursive returns an array (#36335)

Changed

  • Make use of specified ownerKey in MorphTo::associate() (#36303)
  • Update pusher deps and update broadcasting (3404185)

Fixed

  • Revert "[8.x] Clean up custom Queue payload between tests" (#36287)

Added

  • Allow users to specify configuration keys to be used for primitive binding (#36241)
  • ArrayObject + Collection Custom Casts (#36245)
  • Add view path method (af3a651)

Changed

  • Allow using dot syntax for $responseKey (#36196)
  • Full trace for http errors (#36219)

Fixed

  • Fix undefined property with sole query (#36216)
  • Resolving non-instantiables corrupts Container::$with (#36212)
  • Fix attribute nesting on anonymous components (#36240)
  • Ensure $prefix is a string (#36254)
  • Add missing import (#34569)
  • Align PHP 8.1 behavior of e() (#36262)
  • Ensure null values won't break on PHP 8.1 (#36264)
  • Handle directive $value as a string (#36260)
  • Use explicit flag as default sorting (#36261)
  • Fix middleware group display (d9e28dc)

Added

  • Conditionally merge classes into a Blade Component attribute bag (#36131)
  • Allow adding multiple columns after a column (#36145)
  • Add query builder chunkMap method (#36193, 048ac6d)

Changed

  • Update CallQueuedClosure to catch Throwable/Error (#36159)
  • Allow components to use custom attribute bag (#36186)

Fixed

  • Set process timeout to null for load mysql schema into database (#36126)
  • Don't pluralise string if string ends with none alphanumeric character (#36137)
  • Add query log methods to the DB facade (#36177)
  • Add commonmark as recommended package for Illuminate\Support (#36171)
  • Fix Eager loading partially nullable morphTo relations (#36129)
  • Make height of image working with yahoo (#36201)
  • Make sole() relationship friendly (#36200)
  • Make layout in mail responsive in Gmail app (#36198)
  • Fixes parallel testing when a database is configured using URLs (#36204)

Fixed

  • Fixed merge conflict in src/Illuminate/Foundation/Console/stubs/exception-render-report.stub (#36123)

Added

  • Allow to fillJsonAttribute with encrypted field (#36063)
  • Added Route::missing() (#36035)
  • Added Illuminate\Support\Str::markdown() and Illuminate\Support\Stringable::markdown() (#36071)
  • Support retrieving URL for Sftp adapter (#36120)

Fixed

  • Fixed issues with dumping PostgreSQL databases that contain multiple schemata (#36046)
  • Fixes job batch serialization for PostgreSQL (#36081)
  • Fixed Illuminate\View\ViewException::report() (#36110)

Changed

  • Typecast page number as integer in Illuminate\Pagination\AbstractPaginator::resolveCurrentPage() (#36055)
  • Changed Illuminate\Testing\ParallelRunner::createApplication() (1c11b78)

Fixed

  • Fixed Illuminate\View\ViewException::report() (#36110)
  • Fixed Illuminate\Redis\Connections\PhpRedisConnection::spop() (#36106)

Changed

  • Typecast page number as integer in Illuminate\Pagination\AbstractPaginator::resolveCurrentPage() (#36055)

Added

  • Added Stringable::pipe & make Stringable tappable (#36017)
  • Accept a command in object form in Bus::assertChained (#36031)
  • Adds parallel testing (#36034)
  • Make Listeners, Mailables, and Notifications accept ShouldBeEncrypted (#36036)
  • Support JSON encoding Stringable (#36012)
  • Support for escaping bound attributes (#36042)
  • Added Illuminate\Foundation\Application::useLangPath() (#36044)

Changed

  • Pipe through new render and report exception methods (#36032)

Fixed

  • Fixed issue with dumping schema from a postgres database using no default schema (#35966, 7be50a5)
  • Fixed worker --delay option (#35991)
  • Added support of PHP 7.3 to RateLimiter middleware(queue) serialization (#35986)
  • Fixed Illuminate\Foundation\Http\Middleware\TransformsRequest::cleanArray() (#36002)
  • ModelNotFoundException: ensure that the model class name is properly set (#36011)
  • Fixed bus fake (e720279)

Changed

  • Pipe new through render and report exception methods (#36037)

Added

Fixed

  • Fixed type error in Illuminate\Http\Concerns\InteractsWithContentTypes::isJson() (#35956)
  • Fixed Illuminate\Collections\Collection::sortByMany() (#35950)
  • Fixed Limit expected bindings (#35972, 006873d)
  • Fixed serialization of rate limited with redis middleware (#35971)

Fixed

  • Fixed empty html mail (#35941)
  • Fixed type error in Illuminate\Http\Concerns\InteractsWithContentTypes::isJson() (#35956)
  • Limit expected bindings (#35972, 006873d)

Fixed

  • Fixed type error in Illuminate\Http\Concerns\InteractsWithContentTypes::isJson() (#35956)
  • Limit expected bindings (#35972, 006873d)

v8.23.1 (2021-01-19)

Fixed

  • Fixed empty html mail (#35941)

v8.23.0 (2021-01-19)

Added

  • Added Illuminate\Database\Concerns\BuildsQueries::sole() (#35869, 29c7dae, #35908, #35902, #35912)
  • Added default parameter to throw_if / throw_unless (#35890)
  • Added validation support for TeamSpeak3 URI scheme (#35933)

Fixed

  • Fixed extra space on blade class components that are inline (#35874)
  • Fixed serialization of rate limited middleware (f3d4dcb, #35916)

Changed

  • Allow a specific seeder to be used in tests in Illuminate\Foundation\Testing\RefreshDatabase::migrateFreshUsing() (#35864)
  • Pass $key to closure in Collection and LazyCollection's reduce method as well (#35878)

v6.20.13 (2021-01-19)

Fixed

  • Fixed empty html mail (#35941)

v8.22.1 (2021-01-13)

Fixed

  • Limit expected bindings (#35865)

v7.30.2 (2021-01-13)

Added

  • Added strings to DetectsLostConnections (#35752)

Fixed

  • Fixed error from missing null check on PHP 8 (#35797)
  • Limit expected bindings (#35865)

Changed

  • Retry connection if DNS lookup fails (#35790)

v6.20.11 (2021-01-13)

Fixed

  • Limit expected bindings (#35865)

v8.22.0 (2021-01-12)

Added

  • Added new lines to DetectsLostConnections (#35752, #35790)
  • Added Illuminate\Support\Testing\Fakes\EventFake::assertNothingDispatched() (#35835)
  • Added reduce with keys to collections and lazy collections (#35839)

Fixed

  • Fixed error from missing null check on PHP 8 in Illuminate\Validation\Concerns\ValidatesAttributes::validateJson() (#35797)
  • Fix bug with RetryCommand (4415b94, #35828)
  • Fixed Illuminate\Testing\PendingCommand::expectsTable() (#35820)
  • Fixed morphTo() attempting to map an empty string morph type to an instance (#35824)

Changes

  • Update Illuminate\Http\Resources\CollectsResources::collects() (1fa20dd)
  • "null" constraint prevents aliasing SQLite ROWID (#35792)
  • Allow strings to be passed to the report function (#35803)

v6.20.10 (2021-01-12)

Added

  • Added new line to DetectsLostConnections (#35790)

Fixed

  • Fixed error from missing null check on PHP 8 in Illuminate\Validation\Concerns\ValidatesAttributes::validateJson() (#35797)

v8.21.0 (2021-01-05)

Added

  • Added command to clean batches table (#35694, 33f5ac6)
  • Added item to list of causedByLostConnection errors (#35744)
  • Make it possible to set Postmark Message Stream ID (#35755)

Fixed

  • Fixed php artisan db command for the Postgres CLI (#35725)
  • Fixed OPTIONS method bug with use same path and diff domain when cache route (#35714)

Changed

  • Ensure DBAL custom type doesn't exists in Illuminate\Database\DatabaseServiceProvider::registerDoctrineTypes() (#35704)
  • Added missing dispatchAfterCommit to DatabaseQueue (#35715)
  • Set chain queue when inside a batch (#35746)
  • Give a more meaningul message when route parameters are missing (#35706)
  • Added table prefix to Illuminate\Database\Console\DumpCommand::schemaState() (4ffe40f)
  • Refresh the retryUntil time on job retry (#35780, 45eb7a7)

v8.20.0 (2020-12-22)

Added

  • Added Illuminate\Database\DBAL\TimestampType (a5761d4, cff3705 382445f, 810047e)
  • Added ability to specify a separate lock connection (#35621, 3d95235)
  • Added Illuminate\Database\Eloquent\Relations\Concerns\InteractsWithPivotTable::syncWithPivotValues() (#35644, 49b3ce0)

Fixed

  • Fixed Illuminate\Validation\Concerns\ValidatesAttributes::validateJson() for PHP8 (#35646)
  • Fixed assertCookieExpired() and assertCookieNotExpired() methods in Illuminate\Testing\TestResponse (#35637)
  • Fixed: Account for a numerical array of views in Mailable::renderForAssertions() (#35662)
  • Catch DecryptException with invalid X-XSRF-TOKEN in Illuminate\Foundation\Http\Middleware\VerifyCsrfToken (#35671)

Changed

  • Check configuration in Illuminate\Foundation\Console\Kernel::scheduleCache() (a253d0e)
  • Modify Model::mergeCasts to return $this (#35683)
  • Clear a cached user in RequestGuard if a request is changed (#35692)

v7.30.1 (2020-12-22)

Fixed

  • Backport for fix issue with polymorphic morphMaps with literal 0 (#35487)
  • Fixed mime validation for jpeg files (#35518)
  • Fixed Illuminate\Validation\Concerns\ValidatesAttributes::validateJson() for PHP8 (#35646)
  • Catch DecryptException with invalid X-XSRF-TOKEN in Illuminate\Foundation\Http\Middleware\VerifyCsrfToken (#35671)

v6.20.8 (2020-12-22)

Fixed

  • Fixed Illuminate\Validation\Concerns\ValidatesAttributes::validateJson() for PHP8 (#35646)
  • Catch DecryptException with invalid X-XSRF-TOKEN in Illuminate\Foundation\Http\Middleware\VerifyCsrfToken (#35671)

v8.19.0 (2020-12-15)

Added

Fixed

  • Handle Throwable exceptions on Illuminate\Redis\Limiters\ConcurrencyLimiter::block() (#35546)
  • Fixed PDO passing in SqlServerDriver (#35564)
  • When following redirects, terminate each test request in proper order (#35604)

v8.18.1 (2020-12-09)

Fixed

  • Bumped minimum Symfony version (#35535)
  • Fixed passing model instances to factories (#35541)

v8.17.3 (2020-12-08)

Added

  • Added Illuminate\Http\Client\Factory::assertSentInOrder() (#35525, d257ce2, 2fd1411)
  • Added Illuminate\Http\Client\Response::handlerStats() (#35520)
  • Added support for attaching existing model instances in factories (#35494)
  • Added assertChained() and assertDispatchedWithoutChain() methods to Illuminate\Support\Testing\Fakes\BusFake class (#35523, f1b8cac, 236c67d)
  • Allow testing of html and plain text bodies right off mailables (afb858a, b7391e4)

Fixed

  • Fixed Application flush method (#35482)
  • Fixed mime validation for jpeg files (#35518)

Revert

v6.20.7 (2020-12-08)

Fixed

  • Backport for fix issue with polymorphic morphMaps with literal 0 (#35487)
  • Fixed mime validation for jpeg files (#35518)

v8.17.2 (2020-12-03)

Added

  • Added Illuminate\Database\Eloquent\Relations\BelongsToMany::orderByPivot() (#35455, 6f83a50)

v8.17.1 (2020-12-02)

Fixed

  • Fixed an issue with the database queue driver (#35449)

v8.17.0 (2020-12-01)

Added

Fixed

  • Fix issue with polymorphic morphMaps with literal 0 (#35364)
  • Fixed Self-Relation issue in withAggregate method (#35392, aec5cca, #35394)
  • Fixed Use PHP_EOL instead of \n in PendingCommand (#35409)
  • Fixed validating image/jpeg images after Symfony/Mime update (#35419)
  • Fixed fail to morph with custom casting to objects (#35420)
  • Fixed Illuminate\Collections\Collection::sortBy() (307f6fb)
  • Don't overwrite minute and hour when specifying a time with twiceMonthly() (#35436)

Changed

  • Make DownCommand retryAfter available to prerendered view (#35357, b1ee97e)
  • Set default value on cloud driver (0bb7fe4)
  • Update Tailwind pagination focus styles (#35365)
  • Redis: allow to pass connection name (#35402)
  • Change Wormhole to use the Date Factory (#35421)

v7.30.0 (2020-12-01)

Fixed

  • Turn the eloquent collection into a base collection if mapWithKeys loses models (#35129)
  • Fixed pivot restoration (#35218)
  • Fixing BroadcastException message in PusherBroadcaster@broadcast (#35290)
  • Fixed generic DetectsLostConnection string (#35323)
  • Backport Redis context option (#35370)
  • Fixed validating image/jpeg images after Symfony/Mime update (#35419)

Changed

  • Updated aws/aws-sdk-php suggest to ^3.155 (#35267)

v6.20.6 (2020-12-01)

Fixed

  • Backport Redis context option (#35370)
  • Fixed validating image/jpeg images after Symfony/Mime update (#35419)

v8.16.1 (2020-11-25)

Fixed

  • Fixed reflection exception in Illuminate\Routing\Router::gatherRouteMiddleware() (c6e8357)

v8.16.0 (2020-11-17)

Added

  • Added Illuminate\Console\Concerns\InteractsWithIO::withProgressBar() (4e52a60, 169fd2b)
  • Added Illuminate\Console\Concerns\CallsCommands::callSilently() as alias for callSilent() (7f3101b, 0294433)
  • Added option to release unique job locks before processing (#35255, b53f13e)
  • Added ably broadcaster (e0f3f8e, 6381aa9)
  • Added ability to define table name as default morph type (#35257)
  • Allow overriding the MySQL server version for database queue driver (#35263)
  • Added Illuminate\Foundation\Testing\Wormhole::back() (#35261)
  • Support delaying notifications per channel (#35273)
  • Allow sorting on multiple criteria (#35277, 53eb307)
  • Added Illuminate/Database/Console/DbCommand.php command (#35304, b559b3e)
  • Added Collections splitIn methods (#35295)

Fixed

  • Fixed rendering of notifications with config custom theme (325a335)
  • Fixing BroadcastException message in PusherBroadcaster@broadcast (#35290)
  • Fixed generic DetectsLostConnection string (#35323)
  • Fixed SQL Server command generation (#35317)
  • Fixed route model binding on cached closure routes (eb3e262)

Changed

  • Disable CSRF on broadcast route (acb4b77)
  • Easily set a null cache driver (#35262)
  • Updated aws/aws-sdk-php suggest to ^3.155 (#35267)
  • Ensure ShouldBeUniqueUntilProcessing job lock is released once (#35270)
  • Rename qualifyColumn to qualifyPivotColumn in BelongsToMany & MorphToMany (#35276)
  • Check if AsPivot trait is used instead of Pivot Model in Illuminate\Database\Eloquent\Relations\BelongsToMany (#35271)
  • Avoid no-op database query in Model::destroy() with empty ids (#35294)
  • Use --no-owner and --no-acl with pg_restore (#35309)

v6.20.5 (2020-11-24)

Fixed

  • Fixing BroadcastException message in PusherBroadcaster@broadcast (#35290)
  • Fixed generic DetectsLostConnection string (#35323)

Changed

  • Updated aws/aws-sdk-php suggest to ^3.155 (#35267)

v8.15.0 (2020-11-17)

Added

  • Added lock support for file and null cache drivers (#35139, a345185)
  • Added a doesntExpectOutput method for console command testing (#35160, c90fc5f)
  • Added support of MorphTo relationship eager loading constraints (#35190)
  • Added Illuminate\Http\ResponseTrait::withoutCookie() (e9483c4)
  • Use dynamic app namespace in Eloquent Factory instead of App\ string (#35204, 4885bd2)
  • Added read / unread scopes to database notifications (#35215)
  • Added classBasename() method to Stringable (#35219)
  • Added before resolving callbacks to container (#35228)
  • Adds the possibility of testing file upload content (#35231)
  • Added lost connection messages for MySQL persistent connections (#35224)
  • Added Support DBAL v3.0 (#35236)

Fixed

  • Update MySqlSchemaState.php to support MariaDB dump (#35184)
  • Fixed pivot and morphpivot fresh and refresh methods (#35193)
  • Fixed pivot restoration (#35218)

Changed

  • Updated EmailVerificationRequest.php to check if user is not already verified (#35174)
  • Make Validator::parseNamedParameters() public (#35183)
  • Ignore max attempts if retryUntil is set in queue:work (#35214)
  • Explode string channels on Illuminate/Log/LogManager::createStackDriver() (e5b86f2)

v6.20.4 (2020-11-17)

Fixed

  • Fixed pivot restoration (#35218)

v8.14.0 (2020-11-10)

Added

  • Added ability to dispatch unique jobs (#35042, 2123e60)
  • Added Model::encryptUsing() (#35080)
  • Added support to MySQL dump and import using socket (#35083, c43054b)
  • Allow custom broadcastWith in notification broadcast channel (#35142)
  • Added Illuminate\Routing\CreatesRegularExpressionRouteConstraints::whereAlphaNumeric() (#35154)

Fixed

  • Fixed typo in make:seeder command name inside ModelMakeCommand (#35107)
  • Fix SQL Server grammar for upsert (missing semicolon) (#35112)
  • Respect migration table name in config when dumping schema (110eb15)
  • Respect them when previewing notification (ed4411d)
  • Fix appendable attributes in Blade components (#35131)
  • Remove decrypting array cookies from cookie decrypting (#35130)
  • Turn the eloquent collection into a base collection if mapWithKeys loses models (#35129)

Changed

  • Move dispatching of DatabaseRefreshed event to fire before seeders are run (#35091)
  • Handle returning false from reportable callback (55f0b5e)
  • Update Illuminate\Database\Schema\Grammars\MySqlGrammar::typeTimestamp() (#35143)
  • Remove expectedTables after converting to expectedOutput in PendingCommand (#35163)
  • Change SQLite schema command environment variables to work on Windows (#35164)

v6.20.3 (2020-11-10)

Fixed

  • Turn the eloquent collection into a base collection if mapWithKeys loses models (#35129)

v8.13.0 (2020-11-03)

Added

  • Added loadMax() | loadMin() | loadSum() | loadAvg() methods to Illuminate\Database\Eloquent\Collection. Added loadMax() | loadMin() | loadSum() | loadAvg() | loadMorphMax() | loadMorphMin() | loadMorphSum() | loadMorphAvg() methods to Illuminate\Database\Eloquent\Model (#35029)
  • Modify Illuminate\Database\Eloquent\Concerns\QueriesRelationships::has() method to support MorphTo relations (#35050)
  • Added Illuminate\Support\Stringable::chunk() (#35038)

Fixed

  • Fixed a few issues in Illuminate\Database\Eloquent\Concerns\QueriesRelationships::withAggregate() (#35061, #35063)

Changed

  • Set chain queue | connection | delay only when explicitly configured in (#35047)

Refactoring

  • Remove redundant unreachable return statements in some places (#35053)

v7.29.3 (2020-11-03)

Fixed

  • Added php 8 support for Illuminate Testing 7.x (#35045)

v8.12.3 (2020-10-30)

Fixed

  • Fixed Illuminate\Database\Eloquent\Concerns\QueriesRelationships::withAggregate() (20b0c6e)

v8.12.1 (2020-10-29)

Fixed

  • Fixed alias usage in Eloquent (6091048)
  • Fixed Illuminate\Support\Reflector::isCallable() (a90f344)

v8.12.0 (2020-10-29)

Added

  • Added ability to create observers with custom path via make:observer command (#34911)
  • Added Illuminate\Database\Eloquent\Factories\Factory::lazy() (#34923)
  • Added ability to make cast with custom stub file via make:cast command (#34930)
  • ADDED: Custom casts can implement increment/decrement logic (#34964)
  • Added encrypted Eloquent cast (#34937, #34948)
  • Added DatabaseRefreshed event to be emitted after database refreshed (#34952, f31bfe2)
  • Added withMax()|withMin()|withSum()|withAvg() methods to Illuminate/Database/Eloquent/Concerns/QueriesRelationships (#34965, f4e4d95, #35004)
  • Added explain() to Query\Builder and Eloquent\Builder (#34969)
  • Make multiple_of validation rule handle non-integer values (#34971)
  • Added setKeysForSelectQuery method and use it when refreshing model data in Models (#34974)
  • Full PHP 8.0 Support (#33388)
  • Added Illuminate\Support\Reflector::isCallable() (#34994, 8c16891, 31917ab, 11cfa4d, #34999)
  • Added route regex registration methods (#34997, 3d405cc, c2df0d5)
  • Added dontRelease option to RateLimited and RateLimitedWithRedis job middleware (#35010)

Fixed

  • Fixed check of file path in Illuminate\Database\Schema\PostgresSchemaState::load() (268237f)
  • Fixed: PhpRedis (v5.3.2) cluster - set default connection context to null (#34935)
  • Fixed Eloquent Model loadMorph and loadMorphCount methods (#34972)
  • Fixed ambigious column on many to many with select load (5007986)
  • Fixed Postgres Dump (#35018)

Changed

  • Changed make:factory command (#34947, 4f38176)
  • Make assertSee, assertSeeText, assertDontSee and assertDontSeeText accept an array (#34982, 2b98bcc)

v7.29.1 (2020-10-29)

Fixed

  • Fixed alias usage in Eloquent (6091048)
  • Fixed Illuminate\Support\Reflector::isCallable() (a90f344)

v7.29.0 (2020-10-29)

Added

Changed

  • Bump minimum PHP version to v7.2.5 (#34928)

Fixed

  • Fixed ambigious column on many to many with select load (5007986)

v6.20.1 (2020-10-29)

Fixed

  • Fixed alias usage in Eloquent (6091048)
  • Fixed Illuminate\Support\Reflector::isCallable() (a90f344)

v6.20.0 (2020-10-28)

Added

Changed

  • Bump minimum PHP version to v7.2.5 (#34928)

Fixed

  • Fixed ambigious column on many to many with select load (5007986)

v8.11.1 (2020-10-20)

Fixed

v8.11.0 (2020-10-20)

Added

  • Added job middleware to prevent overlapping jobs (#34794, eed05b4)
  • Bring Rate Limiters to Jobs (#34829, ae00294)
  • Added multiple_of custom replacer in validator (#34858)
  • Preserve eloquent collection type after calling ->fresh() (#34848)
  • Provisional support for PHP 8.0 for 6.x (Changed some code in 8.x) (#34884, 28bb76e)

Fixed

  • Fixed fresh() and refresh() on pivots and morph pivots (#34836)
  • Fixed config batching typo (#34852)
  • Fixed Illuminate\Queue\Console\RetryBatchCommand for un-found batch id (#34878)

Changed

  • Change loadRoutesFrom() to accept group $attributes (#34866)

v6.19.1 (2020-10-20)

Fixed

v6.19.0 (2020-10-20)

Added

v8.10.0 (2020-10-13)

Added

  • Allow for chains to be added to batches (#34612, 7b4a9ec)
  • Added is() method to 1-1 relations for model comparison (#34693, 7ba2577)
  • Added upsert to Eloquent and Base Query Builders (#34698, #34712, 58a0e1b)
  • Support psql and pg_restore commands in schema load (#34711)
  • Added Illuminate\Database\Schema\Builder::dropColumns() method on the schema class (#34720)
  • Added yearlyOn() method to scheduler (#34728)
  • Added restrictOnDelete method to ForeignKeyDefinition class (#34752)
  • Added newLine() method to InteractsWithIO trait (#34754)
  • Added isNotEmpty method to HtmlString (#34774)
  • Added delay() to PendingChain (#34789)
  • Added 'multiple_of' validation rule (#34788)
  • Added custom methods proxy support for jobs ::dispatch() (#34781)
  • Added QueryBuilder::clone() (#34780)
  • Support bus chain on fake (a952ac24)
  • Added missing force flag to queue:clear command (#34809)
  • Added dropConstrainedForeignId to `Blueprint (#34806)
  • Implement supportsTags() on the Cache Repository (#34820)
  • Added canAny to user model (#34815)
  • Added when() and unless() methods to MailMessage (#34814)

Fixed

  • Fixed collection wrapping in BelongsToManyRelationship (9245807)
  • Fixed LengthAwarePaginator translations issue (#34714)

Changed

  • Improve schedule:work command (#34736, bbddba2)
  • Guard against invalid guard in make:policy (#34792)
  • Fixed router inconsistency for namespaced route groups (#34793)

v6.18.43 (2020-10-13)

Fixed

  • Matched symfony/debug version with other symfony reqs (6ce02a2)

v8.9.0 (2020-10-06)

Added

  • Added support times() with raw() from Illuminate\Database\Eloquent\Factories\Factory (#34667)
  • Added Illuminate\Pagination\AbstractPaginator::through() (#34657)
  • Added extendsFirst method similar to includesFirst to view (#34648)
  • Allowed Illuminate\Http\Client\PendingRequest::attach() method to accept many files (#34697, 1bb7ad6)
  • Allowed serializing custom casts when converting a model to an array (#34702)

Fixed

  • Added missed RESET_THROTTLED constant to Password Facade (#34641)
  • Fixed queue clearing when blocking (#34659)
  • Fixed missing import in TestView.php (#34677)
  • Use getRealPath to ensure console command class names are generated correctly in Illuminate\Foundation\Console\Kernel (#34653)
  • Added pg_dump --no-owner and --no-acl to avoid owner/permission issues in Illuminate\Database\Schema\PostgresSchemaState::baseDumpCommand() (#34689)
  • Fixed queue:failed command when Class not exists (#34696)

Performance

  • Increase performance of Str::before() by over 60% (#34642)

v7.28.4 (2020-10-06)

Fixed

  • Added missed RESET_THROTTLED constant to Password Facade (#34641)

v6.18.42 (2020-10-06)

Fixed

  • Added missed RESET_THROTTLED constant to Password Facade (#34641)

v8.8.0 (2020-10-02)

Added

  • Proxy URL Generation in VerifyEmail (#34572)
  • Added Illuminate\Collections\Traits\EnumeratesValues::pipeInto() (#34600)
  • Added Illuminate\Http\Client\PendingRequest::withUserAgent() (#34611)
  • Added schedule:work command (#34618)
  • Added support for appendable (prepends) component attributes (09b887b, 53fbc9f)

Fixed

  • Fixed Illuminate\Http\Client\Response::throw() (#34597)
  • Fixed breaking change in migrate command (b2a3641)

Changed

  • Changing the dump and restore method for a PostgreSQL database (#34293)

v8.7.1 (2020-09-29)

Fixed

v8.7.0 (2020-09-29)

Added

  • Added tg:// protocol in "url" validation rule (#34464)
  • Allow dynamic factory methods to obey newFactory method on model (#34492, 4708e9e)
  • Added no-reload option to serve command (9cc2622)
  • Added perHour and perDay methods to Illuminate\Cache\RateLimiting\Limit (#34530)
  • Added Illuminate\Http\Client\Response::onError() (#34558, d034e2c)
  • Added X-Message-ID to Mailgun and Ses Transport (#34567)

Fixed

  • Fixed incompatibility with Lumen route function in Illuminate\Session\Middleware\StartSession (#34491)
  • Fixed: Eager loading MorphTo relationship does not honor each models $keyType (#34531, c3f44c7)
  • Fixed translation label ("Pagination Navigation") for the Tailwind blade (#34568)
  • Fixed save keys on increment / decrement in Model (77db028)

Changed

  • Allow modifiers in date format in Model (#34507)
  • Allow for dynamic calls of anonymous component with varied attributes (#34498)
  • Cast Expression as string so it can be encoded (#34569)

v6.18.41 (2020-09-29)

Fixed

  • Added support for stream reads in FileManager for S3 driver (#34480)

v8.6.0 (2020-09-22)

Added

  • Added Illuminate\Collections\LazyCollection::takeUntilTimeout() (0aabf24)
  • Added --schema-path option to migrate:fresh command (#34419)

Fixed

  • Fixed problems with dots in validator (#34355)
  • Maintenance mode: Fix empty Retry-After header (#34412)
  • Fixed bug with error handling in closure scheduled tasks (#34420)
  • Dont double escape on ComponentTagCompiler.php (12ba0d9)
  • Fixed mysqldump: unknown variable 'column-statistics=0 for MariaDB schema dump (#34442)

v8.5.0 (2020-09-19)

Added

  • Allow clearing an SQS queue by queue:clear command (#34383, de811ea)
  • Added Illuminate\Foundation\Auth\EmailVerificationRequest (4bde31b)
  • Auto handle Jsonable values passed to castAsJson() (#34392)
  • Added crossJoinSub method to the query builder (#34400)
  • Added Illuminate\Session\Store::passwordConfirmed() (fb3f45a)

Changed

  • check for view existence first in Illuminate\Mail\Markdown::render() (5f78c90)
  • Guess the model name when using the make:factory command (#34373)

v7.28.3 (2020-09-17)

Fixed

  • Fixed problems with dots in validator (#34355)

v8.4.0 (2020-09-16)

Added

Fixed

  • Fixed minimal.blade.php (#34379)
  • Dont double escape on ComponentTagCompiler.php (ec75487)
  • Fixed dots in attribute names in DynamicComponent (2d1d962)

Changed

  • Show warning when view exists when using artisan make:component (#34376, 0ce75e0)
  • Call the booting/booted callbacks from the container (#34370)

v8.3.0 (2020-09-15)

Added

  • Added Illuminate\Foundation\Testing\Concerns\InteractsWithDatabase::castAsJson() (#34302)
  • Handle array hosts in Illuminate\Database\Schema\MySqlSchemaState (0920c23)
  • Added Illuminate\Pipeline\Pipeline::setContainer() (#34343)
  • Allow including a closure in a queued batch (#34333)

Fixed

Changed

  • Bumped minimum vlucas/phpdotenv version (#34336)
  • Pass an instance of the job to queued closures (#34350)

v7.28.2 (2020-09-15)

Fixed

  • Do not used now helper in Illuminate/Cache/DatabaseLock::expiresAt() (#34262)
  • Fixed Illuminate\View\ComponentAttributeBag::whereDoesntStartWith() (#34329)

v8.2.0 (2020-09-14)

Added

  • Added Illuminate\Database\Eloquent\Factories\HasFactory::newFactory() (4a95372, a2cea84)

Fixed

  • Do not used now helper in Illuminate/Cache/DatabaseLock::expiresAt() (#34262)
  • Change placeholder in Illuminate\Database\Schema\MySqlSchemaState::load() (#34303)
  • Fixed bug in dynamic attributes Illuminate\View\ComponentAttributeBag::setAttributes() (93f4613)
  • Fixed Illuminate\View\ComponentAttributeBag::whereDoesntStartWith() (#34329)
  • Fixed Illuminate\Routing\Middleware\ThrottleRequests::handleRequestUsingNamedLimiter() (#34325)

Changed

  • Create Faker when a Factory is created (#34298)

v8.1.0 (2020-09-11)

Added

  • Added Illuminate\Database\Eloquent\Factories\Factory::raw() (#34278)
  • Added Illuminate\Database\Eloquent\Factories\Factory::createMany() (#34285, 69072c7)
  • Added the Countable interface to AssertableJsonString (#34284)

Fixed

  • Fixed the new maintenance mode (#34264)

Changed

  • Optimize command can also cache view (#34287)

v8.0.4 (2020-09-11)

Changed

  • Allow Illuminate\Collections\Collection::implode() when instance of Stringable (#34271)

Fixed

  • Fixed DatabaseUuidFailedJobProvider::find() job record structure (#34251)
  • Cast linkCollection to array in JSON pagination responses (#34245)
  • Change the placeholder of schema dump according to symfony placeholder in MySqlSchemaState::dump() (#34261)
  • Fixed problems with dots in validator (8723739)

v8.0.3 (2020-09-10)

Added

  • Added links property to JSON pagination responses (13751a1)

Fixed

  • Fixed bugs with factory creation in FactoryMakeCommand (c7186e0)

v8.0.2 (2020-09-09)

Revert

Changed

  • Update Illuminate\Database\Schema\MySqlSchemaState::executeDumpProcess() (#34233)

v8.0.1 (2020-09-09)

Added

  • Support array syntax in Illuminate\Routing\Route::uses() (f80ba11)

Fixed

  • Fixed BatchRepositoryFake TypeError (#34225)
  • Fixed dynamic component bug (4b1e317)

Changed

  • Give shadow a rounded edge to match content in tailwind.blade.php (#34198)
  • Pass the request to the renderable callback in Illuminate\Foundation\Exceptions\Handler::render() (#34200)
  • Update Illuminate\Database\Schema\MySqlSchemaState (d67be130, c87794f)
  • Respect local env in Illuminate\Foundation\Console\ServeCommand::startProcess() (75e792d)

v8.0.0 (2020-09-08)

Check the upgrade guide in the Official Laravel Upgrade Documentation. Also you can see some release notes in the Official Laravel Release Documentation.

v7.28.0 (2020-09-08)

Added

Fixed

  • Use getTouchedRelations when touching owners (#34100)
  • Fixed for empty fallback_locale in Illuminate\Translation\Translator (#34136)
  • Fixed Illuminate\Database\Schema\Grammars\SqlServerGrammar::compileColumnListing() for tables with schema (#34076)
  • Fixed Significant performance issue in Eloquent Collection loadCount() method (#34177)

v6.18.39 (2020-09-08)

Fixed

  • Fixed for empty fallback_locale in Illuminate\Translation\Translator (#34136)

v7.27.0 (2020-09-01)

Added

  • Allow to use alias of morphed model (#34032)
  • Introduced basic padding (both, left, right) methods to Str and Stringable (#34053)

Refactoring

Changed

  • allow to reset forced scheme and root-url in UrlGenerator (#34039)
  • Updating the make commands to use a custom views path (#34060, b593c62)
  • Using "public static property" in View Component causes an error (#34058)
  • Changed postgres processor (#34055)

v6.18.38 (2020-09-01)

Changed

  • Changed postgres processor (#34055)

v7.26.1 (2020-08-27)

Fixed

  • Fixed offset error on invalid remember token (#34020)
  • Only prepend scheme to PhpRedis host when necessary (#34017)
  • Fixed whereKey and whereKeyNot in Illuminate\Database\Eloquent\Builder (#34031)

v6.18.37 (2020-08-27)

Fixed

  • Fixed offset error on invalid remember token (#34020)
  • Only prepend scheme to PhpRedis host when necessary (#34017)
  • Fixed whereKey and whereKeyNot in Illuminate\Database\Eloquent\Builder (#34031)

v7.26.0 (2020-08-25)

Added

  • Added whenHas and whenFilled methods to Illuminate\Http\Concerns\InteractsWithInput class (#33829)
  • Added email validating with custom class (#33835)
  • Added Illuminate\View\ComponentAttributeBag::whereDoesntStartWith() (#33851)
  • Allow setting synchronous_commit for Postgres (#33897)
  • Allow nested errors in Illuminate\Testing\TestResponse::assertJsonValidationErrors() (#33989)
  • Added support for stream reads to FilesystemManager (#34001)

Fixed

  • Fix defaultTimezone not respected in scheduled Events (#33834)
  • Fixed usage of Support Collection#countBy($key) (#33852)
  • Fixed route registerar bug (42ba0ef)
  • Fixed key composition for attribute with dot at validation error messages (#33932)
  • Fixed the dump method for LazyCollection (#33944)
  • Fixed dimension ratio calculation in Illuminate\Validation\Concerns\ValidatesAttributes::failsRatioCheck() (#34003)

Changed

  • Implement LockProvider on DatabaseStore (#33844)
  • Publish resources.stub in stub:publish command (#33862)
  • Handle argon failures robustly (#33856)
  • Normalize scheme in Redis connections (#33892)
  • Cast primary key to string when $keyType is string (#33930)
  • Load anonymous components from packages (#33954)
  • Check no-interaction flag exists and is true for Artisan commands (#33950)

Deprecated

  • Deprecate Illuminate\Database\Eloquent\Model::removeTableFromKey() (#33859)

v6.18.36 (2020-08-25)

Fixed

  • Fix dimension ratio calculation in Illuminate\Validation\Concerns\ValidatesAttributes::failsRatioCheck() (#34003)

Changed

  • Normalize scheme in Redis connections (#33892)
  • Check no-interaction flag exists and is true for Artisan commands (#33950)

v7.25.0 (2020-08-11)

Added

  • Added support to use where in apiResource method (#33790, 3dcc4a6)
  • Support tls:// scheme when using url in Redis config (#33800)
  • Scoped resource routes (#33752)
  • Added Once blade Blocks (#33812)
  • Let mailables accept a simple array of email addresses as cc or bcc (#33810)
  • Added support for PhpRedis 5.3 options parameter (#33799)

Changed

  • Removed quotes when setting isolation level for mysql connections (#33805)
  • Make LazyCollection#countBy be lazy (#33801)

Fixed

  • Revert changes to MailMessage (#33816)

v7.24.0 (2020-08-07)

Added

  • Added possibility to configure isolation level for mysql connections (#33783, c6a3174)
  • Added plain text only notifications (#33781)

Changed

  • Verify column names are actual columns when using guarded (#33777)

v6.18.35 (2020-08-07)

Changed

  • Verify column names are actual columns when using guarded (#33777)

v7.23.2 (2020-08-06)

Fixed

  • Fixed Illuminate\Support\Arr::query() (c6f9ae2)
  • Dont allow mass filling with table names (9240404, f5fa6e3)

v7.23.1 (2020-08-06)

Added

  • Added isNotFilled() method to Request (#33732)

Fixed

v6.18.34 (2020-08-06)

Fixed

  • Fixed Illuminate\Support\Arr::query() (c6f9ae2)
  • Dont allow mass filling with table names (9240404, f5fa6e3)

v6.18.33 (2020-08-06)

Fixed

v7.23.0 (2020-08-04)

Added

  • Added dynamic slot (directive) name support (#33724)
  • Added plain mail to notifications (#33725)
  • Support the sink option when using Http::fake() (#33720, fba984b)
  • Added whereBetweenColumns | orWhereBetweenColumns | whereNotBetweenColumns | orWhereNotBetweenColumns methods to Illuminate\Database\Query\Builder (#33728)

Changed

  • Ignore numeric field names in validators (#33712)
  • Fixed validation rule 'required_unless' when other field value is boolean. (#33715)

v6.18.32 (2020-08-04)

Changed

  • Ignore numeric field names in validators (#33712)
  • Fixed validation rule 'required_unless' when other field value is boolean. (#33715)

v7.22.4 (2020-07-27)

Update

  • Update cookies encryption (release)

v7.22.3 (2020-07-27)

Update

  • Update cookies encryption (release)

v7.22.2 (2020-07-27)

Fixed

v7.22.1 (2020-07-27)

Fixed

v7.22.0 (2020-07-27)

Added

  • Added sectionMissing Blade Directive (#33614)
  • Added range option to queue:retry command (#33627)

Fixed

  • Prevent usage of get*AtColumn() when model has no timestamps (#33634)
  • Dont decrement transaction below 0 in Illuminate\Database\Concerns\ManagesTransactions::handleCommitTransactionException() (7681795)
  • Fixed transaction problems on closure transaction (c4cdfc7)
  • Prevent to serialize uninitialized properties (#33644)
  • Fixed missing statement preventing deletion in Illuminate\Database\Eloquent\Relations\MorphPivot::delete() (#33648)

Changed

  • Throw a TypeError if concrete is not a string or closure in Illuminate\Container\Container::bind() (#33539)
  • Add HTML comment block around inline inspiring quote for consistency with blade template version (#33625)
  • Improve cookie encryption (#33662)

v6.18.31 (2020-07-27)

Update

  • Update cookies encryption (release)

v6.18.30 (2020-07-27)

Update

  • Update cookies encryption (release)

v6.18.29 (2020-07-27)

Fixed

v6.18.28 (2020-07-27)

Fixed

v6.18.27 (2020-07-27)

Fixed

  • Dont decrement transaction below 0 in Illuminate\Database\Concerns\ManagesTransactions::handleCommitTransactionException() (7681795)
  • Fixed transaction problems on closure transaction (c4cdfc7)
  • Prevent to serialize uninitialized properties (#33644)
  • Fixed missing statement preventing deletion in Illuminate\Database\Eloquent\Relations\MorphPivot::delete() (#33648)

Changed

  • Improve cookie encryption (#33662)

v7.21.0 (2020-07-21)

Added

  • Added Illuminate\Database\Schema\ForeignKeyDefinition::nullOnDelete() (#33551)
  • Added getFallbackLocale() and setFallbackLocale() methods to Illuminate\Foundation\Application (#33595)

Fixed

  • Fixed Illuminate/Redis/Connections/PhpRedisConnection::*scan() returns (d3d36f0)
  • Align (fix) nested arrays support for assertViewHas & assertViewMissing in Illuminate\Testing\TestResponse (#33566)
  • Fixed issue where Storage::path breaks when using cache due to missing method in CachedAdapter (#33602)

Changed

  • Added a base exception for Http Client exceptions (#33581)

v6.18.26 (2020-07-21)

Fixed

  • Align (fix) nested arrays support for assertViewHas & assertViewMissing in Illuminate\Testing\TestResponse (#33566)

v7.20.0 (2020-07-14)

Added

  • Added Illuminate\Database\Schema\ForeignKeyDefinition::cascadeOnUpdate() (#33522)

Changed

  • Apply model connection name to Database validation rules (#33525)
  • Allow calling invokable classes using FQN in Illuminate\Container\BoundMethod.php::call() (#33535)

v7.19.1 (2020-07-10)

Added

  • Added support for SQL Server LoginTimeout to specify seconds to wait before failing connection attempt (#33472)
  • Added ability to simulate "withCredentials" in test requests (#33497, aa17e75)

Fixed

  • Fixed Illuminate\Cache\FileStore::flush() (#33458)
  • Fixed auto creating model by class name (#33481)
  • Don't return nested data from validator when failing an exclude rule (#33435)
  • Fixed validation nested error messages (6615371)
  • Fixed Illuminate\Support\Reflector to handle parent (#33502)

Revert

v6.18.25 (2020-07-10)

Fixed

  • Fixed Illuminate\Cache\FileStore::flush() (#33458)
  • Fixed auto creating model by class name (#33481)
  • Don't return nested data from validator when failing an exclude rule (#33435)
  • Fixed validation nested error messages (6615371)
  • Fixed Illuminate\Support\Reflector to handle parent (#33502)

Revert

v7.19.0 (2020-07-07)

Added

  • Added everyTwoHours() | everyThreeHours() | everyFourHours() | everySixHours() methods to Illuminate\Console\Scheduling\ManagesFrequencies (#33393)
  • Conditionally returning appended attributes in API resources (#33422)
  • Added ScheduledTaskFailed event (#33427)
  • Added Illuminate\Support\Stringable::when() (#33455)

Fixed

  • Fixed signed urls with custom parameters (bcb133e)
  • Determine model key name correctly in Illuminate/Validation/Concerns/ValidatesAttributes.php (a1fdd53)
  • Fixed notifications database channel for anonymous notifiables (#33409)

Chnaged

  • Improve SQL Server last insert id retrieval (#33430, de1d159)
  • Make Str::endsWith return false if both haystack and needle are empty strings (#33434)

v6.18.24 (2020-07-07)

Fixed

  • Fixed notifications database channel for anonymous notifiables (#33409)
  • Added float comparison null checks (#33421)
  • Improve SQL Server last insert id retrieval (#33453)

v7.18.0 (2020-06-30)

Added

  • Added Illuminate\Http\Client\PendingRequest::withMiddleware() (#33315, b718d3a)
  • Make ComponentAttributeBag Macroable (#33354)
  • Added filter and whereStartsWith and thatStartWith to Illuminate\View\ComponentAttributeBag (0abe2db, 07ee3e8)
  • Added Illuminate\Database\Eloquent\Collection::toQuery() (#33356, 15586fa)
  • Added first() to Illuminate\View\ComponentAttributeBag (#33358, 731b94f)
  • Added everyTwoMinutes() | everyThreeMinutes() | everyFourMinutes() methods to Illuminate/Console/Scheduling/ManagesFrequencies (#33379)

Fixed

  • Fixed ConfigurationUrlParser query decoding (#33340)
  • Fixed exists in Illuminate\Database\Eloquent\Relations\Concerns\AsPivot::delete() (#33347)

Changed

  • Replace placeholder for dots and asterisks in validator (#33367)

v6.18.23 (2020-06-30)

Fixed

  • Fixed ConfigurationUrlParser query decoding (#33340)
  • Correct implementation of float casting comparison (#33322)

v7.17.2 (2020-06-24)

Added

  • Added Illuminate\Http\Client\PendingRequest::withBody() method (1e1f531, 7b0b437)

Fixed

Revert

v7.17.1 (2020-06-23)

Fixed

  • Fixed "Undefined variable: current" exception in Illuminate\Database\Eloquent\Concerns\HasAttributes::originalIsEquivalent() #33308

v7.17.0 (2020-06-23)

Added

  • Added Illuminate\Console\Scheduling\ManagesFrequencies::lastDayOfMonth() (#33241, be194a8)
  • Allow array based event listeners (7594267)
  • Allow array callback format with non-static methods in Illuminate\Auth\Access\Gate::define() (b7977d3)
  • Added Illuminate\Console\Scheduling\ManagesFrequencies::time() parameter on twiceMonthly function (#33274)
  • Added providerIsLoaded method to Illuminate\Foundation\Application (#33286, b87233f)

Fixed

  • Fixed domain binding with custom fields in Illuminate\Routing\Route::domain() (#33231)
  • Fixed Model::originalIsEquivalent() with floats (#33259, d68d915)

v6.18.21 (2020-06-23)

Fixed

  • Fixed Model::originalIsEquivalent() with floats (#33259, d68d915)

Revert

  • Revert "handle array callbacks" in event dispatcher (4e3fedb)

v7.16.0 (2020-06-16)

Added

  • Added makeVisibleIf and makeHiddenIf methods to Illuminate\Database\Eloquent\Concerns\HidesAttributes (#33176, 42383e4)
  • Added option to specify a custom guard for the make:policy command (#33210, 13e3b65)
  • Added theme property to Illuminate\Mail\Mailable class (#33218)

Changed

v6.18.20 (2020-06-16)

Changed

  • Improved the reflector (#33184)

v7.15.0 (2020-06-09)

Added

  • Added extendable relations for models (#33025)
  • Added Illuminate\Foundation\Testing\Concerns\MakesHttpRequests::withToken() (#33075, 79383a1)
  • Added the ability to Illuminate\Database\Eloquent\Relations\HasOneOrMany::makeMany() (create many without saving) (#33021)
  • Added Illuminate\Database\Schema\Blueprint::foreignUuid() (#33129)
  • Allow setting the event handler queue via a viaQueue() method (#32770, 852a927)

Fixed

  • Fixed Model::withoutEvents() not registering listeners inside boot() (#33149, 4bb32ae)

v6.18.19 (2020-06-09)

Fixed

  • Fixed Model::withoutEvents() not registering listeners inside boot() (#33149, 4bb32ae)

v7.14.1 (2020-06-03)

Added

  • Added missing symfony/mime suggest (#33067)

Fixed

  • Fixed Illuminate\Database\Eloquent\Relations\MorphToMany::getCurrentlyAttachedPivots() (110b129)

v7.14.0 (2020-06-02)

Added

  • Views: make attributes available within render method (#32978)
  • Added forceDeleted method to SoftDeletes (#32982)
  • Added Illuminate\Filesystem\Filesystem::guessExtension() method (#33001, d26be90)
  • Added Illuminate\Http\Client\Request::toPsrRequest() (#33016)
  • Added Illuminate\Support\MessageBag::addIf() method (50efe09)
  • Provide psr/container-implementation (#33020)
  • Support PHP 8's reflection API (#33039, 6018c1d)

Fixed

Changed

  • Use new line for route:list middleware (#32993)
  • Disallow generation commands with reserved names (#33037)

v6.18.18 (2020-06-03)

Fixed

  • Fixed Illuminate\Database\Eloquent\Relations\MorphToMany::getCurrentlyAttachedPivots() (110b129)

v6.18.17 (2020-06-02)

Added

  • Support PHP 8's reflection API (#33039)

Fixed

  • Fixed Illuminate\Database\Eloquent\Collection::getQueueableRelations() (00e9ed7)
  • Fixed bug with update existing pivot and polymorphic many to many (684208b)

v7.13.0 (2020-05-26)

Added

Fixed

  • Fixed route list command for excluded middleware (7ebd211)
  • Fixed behavior of oneachside = 1 with paginator in Illuminate\Pagination\UrlWindow (c59cffa, 5d817be)

Changed

  • Using an indexed array as the limit modifier for phpredis zrangebyscore (#32952)

v7.12.0 (2020-05-19)

Added

  • Added Illuminate\Http\Middleware\TrustHosts (9229264)
  • Added ability to skip middleware from resource routes (#32891)

Fixed

  • Fixed Queued Mail MessageSent Listener With Attachments (#32795)
  • Added error clearing before sending in Illuminate\Mail\Mailer::sendSwiftMessage() (#32799)
  • Avoid foundation function call in the auth component (#32805)
  • Fixed inferred table reference for Illuminate\Database\Schema\ForeignIdColumnDefinition::constrained() (#32847)
  • Fixed wrong component generation (73060db)
  • Fixed bug with request rebind and url defaults in Illuminate\Routing\UrlGenerator (6ad92bf)
  • Fixed Illuminate\Cache\ArrayStore::increment() bug that changes expiration to forever (#32875)

Changed

  • Dont cache non objects in Illuminate/Database/Eloquent/Concerns/HasAttributes::getClassCastableAttributeValue() (894fe22)
  • Added explicit symfony/polyfill-php73 dependency (5796b1e)
  • Set Cache\FileStore file permissions only once (#32845, 11c533b)
  • Added alias as key of package's view components (#32863)

v6.18.15 (2020-05-19)

Added

  • Added Illuminate\Http\Middleware\TrustHosts (9229264)

Fixed

Changed

  • Added explicit symfony/polyfill-php73 dependency (5796b1e)
  • Set Cache\FileStore file permissions only once (#32845, 11c533b)

v7.11.0 (2020-05-12)

Added

  • Added support for FILTER_FLAG_EMAIL_UNICODE via "email:filter_unicode" in email validator (#32711, 43a1ed1)
  • Added Illuminate\Support\Stringable::split() (#32713, 19c5054)
  • Added orWhereIntegerInRaw() and orWhereIntegerNotInRaw() to Illuminate\Database\Query\Builder (#32710)
  • Added Illuminate\Cache\DatabaseStore::add() (7fc452b)
  • Implement env and production Blade directives (#32742)
  • Added Illuminate\Database\Eloquent\Relations\MorphTo::morphWithCount() method (#32738)
  • Added Illuminate\Database\Eloquent\Collection::loadMorphCount() method (#32739)
  • Added support viaQueues method for notifications (e97d17c)
  • Added loadMorph and loadMorphCount methods to Illuminate\Database\Eloquent\Model (#32760)
  • Added Illuminate\Database\DatabaseManager::usingConnection() method (#32761, 5f8c7de)
  • Added Illuminate\Http\Client\PendingRequest::head() method (#32782)

Fixed

  • Fixed belongsToMany child relationship solving (c5e88be)
  • Allow overriding the MySQL server version for strict mode (#32708)
  • Added boolean to types that don't need character options (#32716)
  • Fixed Illuminate\Foundation\Testing\PendingCommand that do not resolve 'OutputStyle::class' from the container (#32687)
  • Clear resolved event facade on Illuminate\Foundation\Testing\Concerns\MocksApplicationServices::withoutEvents() (d1e7f85)
  • Fixed Illuminate\Database\Eloquent\Collection::getQueueableRelations() for filtered collections (#32747)
  • Fixed Illuminate\Database\Eloquent\Collection::loadCount method to ensure count is set on all models (#32740)
  • Fixed deprecated "Doctrine/Common/Inflector/Inflector" class (#32734)
  • Fixed Illuminate\Validation\Validator::getPrimaryAttribute() (#32775)
  • Revert of "Remove strval from Illuminate/Validation/ValidationRuleParser::explodeWildcardRules()" (52940cf)

Changed

  • Updated user model var name in make:policy command (#32748)
  • Remove the undocumented dot keys support in validators (#32764)

v6.18.14 (2020-05-13)

Added

  • Added SSL SYSCALL EOF as a lost connection message (#32697)

Fixed

  • Fixed FakerGenerator Unique caching issue (#32703)
  • Added boolean to types that don't need character options (#32716)
  • Fixed Illuminate\Foundation\Testing\PendingCommand that do not resolve 'OutputStyle::class' from the container (#32687)
  • Clear resolved event facade on Illuminate\Foundation\Testing\Concerns\MocksApplicationServices::withoutEvents() (d1e7f85)
  • Fixed deprecated "Doctrine/Common/Inflector/Inflector" class (#32734)

Changed

  • Remove the undocumented dot keys support in validators (#32764)
  • Remove strval from Illuminate/Validation/ValidationRuleParser::explodeWildcardRules() 1c76a6f

v7.10.3 (2020-05-06)

Added

  • Added Illuminate\Http\Client\Response::failed() (#32699)
  • Added SSL SYSCALL EOF as a lost connection message (#32697)

Fixed

  • Fixed FakerGenerator Unique caching issue (#32703)
  • Set/reset the select to from.* in Illuminate/Database/Query/Builder::runPaginationCountQuery() (858f454, 98a242e)

v7.10.2 (2020-05-06)

Fixed

  • Updated Illuminate\Database\Query\Builder::runPaginationCountQuery() to support groupBy and sub-selects (#32688)

v7.10.1 (2020-05-05)

Fixed

  • Fixed Illuminate\Database\Eloquent\Collection::getQueueableRelations() (7b32460)

v7.10.0 (2020-05-05)

Added

  • Added artisan make:cast command (#32594)
  • Added Illuminate\Foundation\Testing\Concerns\InteractsWithDatabase::assertDatabaseCount() (#32597)
  • Allow configuring the auth_mode for SMTP mail driver (#32616)
  • Added hasNamedScope() function to the Base Model (#32622, #32631)
  • Allow doing truth-test assertions with just a closure (#32626, f69ad90, 22d6fca)
  • Run pagination count as subquery for group by and havings (#32624)
  • Added Callbacks with Output to Console Schedule (#32633, 35a7883, 8d8d620)
  • Added Cache::lock() support for the database cache driver (#32639, 573831b)
  • Same-session ID request concurrency limiting (#32636)
  • Add skipUntil and skipWhile methods to the collections (#32672, #32676)
  • Support delete with limit on sqlsrv (f16d325)
  • Added mergeFillable() and mergeGuarded() to Model (#32679)

Fixed

  • Prevents a memory leak in Faker (2228233)
  • Fixed setting component name and attributes (#32599, f8ff3ca)
  • Fixed Illuminate\Foundation\Testing\TestResponse::assertSessionHasInput() (f0639fd)
  • Set relation connection on eager loaded MorphTo (#32602)
  • Filtering null's in hasMorph() (#32614)
  • Fixed Illuminate\Foundation\Console\EventMakeCommand::alreadyExists() (7bba4bf)
  • Fixed Illuminate\Console\Scheduling\Schedule::compileParameters() (cfc3ac9, 36e215d)
  • Fixed bug with model name in Illuminate\Database\Eloquent\RelationNotFoundException::make() (f72a166)
  • Allow trashed through parents to be included in has many through queries (#32609)

Changed

  • Changed Illuminate/Database/Eloquent/Relations/Concerns/AsPivot::fromRawAttributes() (6c502c1)
  • Restore Š¾nly common relations (#32613, d82f78b, 48e4d60)
  • Use single space if plain email is empty in Illuminate\Mail\Mailer::addContent() (0557622)
  • Remove wasted file read when loading package manifest in Illuminate\Foundation\PackageManifest::getManifest() (#32646)
  • Do not change character and collation for some columns on change (fccdf7c)
  • Use table name when resolving has many through / one relationships (8d69454)

v6.18.13 (2020-05-05)

Fixed

  • Fixed Illuminate\Database\Eloquent\Collection::getQueueableRelations() (7b32460)

v6.18.12 (2020-05-05)

Added

  • Add pdo try again as lost connection message (#32605)

Fixed

  • Fixed Illuminate\Foundation\Testing\TestResponse::assertSessionHasInput() (f0639fd)
  • Set relation connection on eager loaded MorphTo (#32602)
  • Fixed Illuminate\Database\Schema\Grammars\SqlServerGrammar::compileDropDefaultConstraint() was ignoring Table prefixes (#32606)
  • Filtering null's in hasMorph() (#32614)
  • Fixed Illuminate\Console\Scheduling\Schedule::compileParameters() (cfc3ac9, 36e215d)
  • Fixed bug with model name in Illuminate\Database\Eloquent\RelationNotFoundException::make() (f72a166)
  • Fixed Illuminate\Foundation\Testing\TestResponse::assertJsonCount() not accepting falsey keys (#32655)

Changed

  • Changed Illuminate/Database/Eloquent/Relations/Concerns/AsPivot::fromRawAttributes() (6c502c1)
  • Restore Š¾nly common relations (#32613, d82f78b, 48e4d60)
  • Use single space if plain email is empty in Illuminate\Mail\Mailer::addContent() (0557622)
  • Remove wasted file read when loading package manifest in Illuminate\Foundation\PackageManifest::getManifest() (#32646)
  • Cache FakerGenerator instances (#32585)
  • Do not change character and collation for some columns on change (fccdf7c)

v7.9.2 (2020-04-28)

Changed

  • Extract InvokableComponentVariable class (f1ef6e6)
  • Changed argument order in Illuminate\View\Compilers\ComponentTagCompiler::__construct() (520544d)

v7.9.1 (2020-04-28)

Added

  • Added more proxy methods to deferred value from Illuminate\View\Component::createInvokableVariable() (08c4012)

v7.9.0 (2020-04-28)

Added

  • Add pdo try again as lost connection message (#32544)
  • Compile Echos Within Blade Component Attributes (#32558)
  • Parameterless Component Methods Invokable With & Without Parens (#32560)

Fixed

  • Fixed firstWhere behavior for relations (#32525)
  • Added check to avoid endless loop in MailManager::createTransport() (#32549)
  • Fixed table prefixes with compileDropDefaultConstraint() (#32554)
  • Fixed boolean value in Illuminate\Foundation\Testing\TestResponse::assertSessionHasErrors() (#32555)
  • Fixed Model::getOriginal() with custom casts (9e22c7c)

Changed

  • Added withName to Illuminate\View\Component::ignoredMethods() (2e9eef2)

Fixed

  • Auth with each master on flushdb (d0afa58)
  • Clear resolved facades earlier (f2ea1a2)
  • Register opis key so it is not tied to a deferred service provider (a4574ea)
  • Pass status code to schedule finish (b815dc6)
  • Fix firstWhere behavior for relations (#32525)
  • Fix boolean value in assertSessionHasErrors (#32555)

v7.8.1 (2020-04-24)

Fixed

  • Fixed Illuminate\Http\Resources\Json\PaginatedResourceResponse::toResponse() (d460374)

v7.8.0 (2020-04-24)

Added

  • Added signedRoute() and temporarySignedRoute() methods to Illuminate\Routing\Redirector (#32489)
  • Added takeUntil and takeWhile collection methods (#32494, #32496)
  • Added Illuminate\Container\ContextualBindingBuilder::giveTagged() (#32514)
  • Added methods withFragment and withoutFragment to Illuminate\Http\RedirectResponse (11d6bef, 0099591, 42c67a1, a1e741a)
  • Added exclude_without validation rule (4083ae5)

Fixed

  • Fixed compiled route actions without a namespace (#32512)
  • Reset select bindings when setting select (#32531)

Changed

  • Added warn in Illuminate/Support/Facades/Auth::routes() when laravel/ui is not installed (#32482)
  • Added auth to each master on Illuminate\Redis\Connections\PhpRedisConnection::flushdb() (837921b)
  • Register opis key so it is not tied to a deferred service provider (Illuminate/Encryption/EncryptionServiceProvider.php) (62d8a07)
  • Pass status code to schedule finish (#32516)
  • Check route:list --columns option case insensitively (#32521)

Deprecated

  • Deprecate Illuminate\Support\Traits\EnumeratesValues::until (#32517)

v7.7.1 (2020-04-21)

Added

  • Allow developers to specify accepted keys in array rule (#32452)

Changed

  • Add check is_object to Illuminate\Database\Eloquent\Model::refresh() (1b0bdb4)

v7.7.0 (2020-04-21)

Added

  • Added ArrayAccess support for Http client get requests (#32401)
  • Added Illuminate\Http\Client\Factory::assertSentCount() (#32407)
  • Added Illuminate\Database\Schema\Blueprint::rawIndex() (#32411)
  • Added getGrammar into passthru in Eloquent builder (#32412)
  • Added --relative option to storage:link command (#32457, 24b705e)
  • Added dynamic column key for foreign constraints (#32449)
  • Added container support for variadic constructor arguments (#32454, 1dd6db3)
  • Added Illuminate\Http\Client\Request::hasHeaders() (#32462)

Fixed

  • Fixed MorphPivot::delete() for models with primary key (#32421)
  • Throw exception on missing required parameter on Container call method (#32439, 44c2a8d)
  • Fixed Http Client multipart request (#32428, 1f163d4)
  • Fixed Illuminate\Support\Stringable::isEmpty() (#32447)
  • Fixed whereNull/whereNotNull for json in MySQL (#32417, d3bb329)
  • Fixed Collection::orderBy() with callable (#32471)

Changed

  • Re-use Router::newRoute() inside CompiledRouteCollection (#32416)
  • Make Illuminate\Queue\InteractsWithQueue.php::$job public (2e272ee)
  • Catch and report exceptions thrown during schedule run execution (#32461)

Fixed

Fixed

  • Fix refresh() to support AsPivot trait (#32420)
  • Fix orderBy with callable (#32471)

v7.6.2 (2020-04-15)

Added

  • Added substrCount() method to Stringable and Str (#32393)

Fixed

  • Fixed Lazyload PackageManifest (#32391)
  • Fixed email validator (#32388)
  • Fixed Illuminate\Mail\Mailable::attachFromStorageDisk() (#32394)

Changed

  • Changed Illuminate\Translation\Translator::setLocale() (e78d24f, a0094a5)
  • Changed Illuminate\Mail\Mailable::attachData() (#32392)

Fixed

  • Removed dots (e78d24f)
  • Duplicated mailable in-memory data attachments with different names (#32392)
  • Fix a regression caused by #32315 (#32388)
  • Duplicated mailable storage attachments with different names (#32394)

v7.6.1 (2020-04-14)

Fixed

  • Fixed Illuminate\Testing\TestResponse::offsetExists() (#32377)

v7.6.0 (2020-04-14)

Added

  • Added Collection::until() method (#32262)
  • Added HtmlString::isEmpty() method (#32289, #32300)
  • Added Illuminate\Support\Stringable::isNotEmpty() method (#32293)
  • Added ltrim() and rtrim() methods to Illuminate\Support\Stringable class (#32288)
  • Added ability to skip a middleware (#32347, 412261c)
  • Added Illuminate\Http\Client\Response::object() method (#32341)
  • Set component alias name (#32346)
  • Added Illuminate\Database\Eloquent\Collection::append() method (#32324)
  • Added "between" clauses for BelongsToMany pivot columns (#32364)
  • Support retryAfter() method option on Queued Listeners (#32370)
  • Added support for the new composer installed.json format (#32310)
  • Added uuid change support in migrations (#32316)
  • Allowed store resource into postgresql bytea (#32319)

Fixed

  • Fixed *scan methods for phpredis (#32336)
  • Fixed Illuminate\Auth\Notifications\ResetPassword::toMail() (#32345)
  • Call setLocale in Illuminate\Translation\Translator::__construct() (1c6a504)
  • Used a map to prevent unnecessary array access in Illuminate\Http\Resources\Json\PaginatedResourceResponse::toResponse() (#32296)
  • Prevent timestamp update when pivot is not dirty (#32311)
  • Fixed CURRENT_TIMESTAMP precision bug in Illuminate\Database\Schema\Grammars\MySqlGrammar (#32298)

Changed

  • Added default value to HtmlString constructor (#32290)
  • Used BindingResolutionException to signal problem with container resolution (#32349)
  • Illuminate\Validation\Concerns\ValidatesAttributes.php ::validateUrl() use Symfony/Validator 5.0.7 regex (#32315)

Depreciated

  • Depreciate the elixir function (#32366)

Fixed

  • Call setlocale (1c6a504)
  • Use a map to prevent unnecessary array access (#32296)
  • Prevent timestamp update when pivot is not dirty (#32311)
  • Add support for the new composer installed.json format (#32310)
  • ValidatesAttributes::validateUrl use Symfony/Validator 5.0.7 regex (#32315)
  • Fix *scan methods for phpredis (#32336)
  • Use the router for absolute urls (#32345)

v7.5.2 (2020-04-08)

Fixed

  • Prevent insecure characters in locale (c248521)

Optimization

  • Optimize Arr::set() method (#32282)

Security

  • Prevent insecure characters in locale (c248521)

v7.5.1 (2020-04-07)

Fixed

  • Fixed Check a request header with an array value in Illuminate\Http\Client\Request::hasHeader() (#32274)
  • Fixed setting mail header (#32272)

v7.5.0 (2020-04-07)

Added

  • Added assertNotSent() and assertNothingSent() methods to Illuminate\Http\Client\Factory (#32197)
  • Added enum support for renameColumn() (#32205)
  • Support returning an instance of a caster (#32225)

Fixed

  • Prevent long URLs from breaking email layouts (#32189)
  • Fixed camel casing relationship (#32217)
  • Fixed merging boolean or null attributes in Blade components (#32245)
  • Fixed Console expectation assertion order (#32258)
  • Fixed route helper with custom binding key (#32264)
  • Fixed double slashes matching in UriValidator (fix inconsistencies between cached and none cached routes) (#32260)
  • Fixed setting mail header (#32272)

Optimization

  • Optimize Container::resolve() method (#32194)
  • Optimize performance for data_get() method (#32192)
  • Optimize Str::startsWith() (#32243)

Fixed

  • Revert "Fix setting mail header" (#32278)

Fixed

  • Added missing return in the sendNow pending mail fake (#32095)
  • Prevent long URLs from breaking email layouts (#32189)
  • Fix setting mail header (#32272)

v7.4.0 (2020-03-31)

Added

  • Makes the stubs used for make:policy customizable (#32040, 9d36a36)
  • Implement HigherOrderWhenProxy for Collections (#32148)
  • Added Illuminate\Testing\PendingCommand::expectsChoice() (#32139)
  • Added support for default values for the "props" blade tag (#32177)
  • Added Castable interface (#32129, 9cbf908, 651371a)
  • Added the ability to remove orders from the query builder (#32186)

Fixed

  • Added missing return in the PendingMailFake::sendNow() and PendingMailFake::send() (#32093)
  • Fixed custom Model attributes casts (#32118)
  • Fixed route group prefixing (#32135, 870efef)
  • Fixed component class view reference (#32132)

Changed

  • Remove Swift Mailer bindings (#32165)
  • Publish console stub when running stub:publish command (#32096)
  • Publish rule stub when running make:rule command (#32097)
  • Adding the middleware.stub to the files that will be published when running php artisan stub:publish (#32099)
  • Adding the factory.stub to the files that will be published when running php artisan stub:publish (#32100)
  • Adding the seeder.stub to the files that will be published when running php artisan stub:publish (#32122)

v7.3.0 (2020-03-24)

Added

  • Added possibility to use ^4.0 versions of ramsey/uuid (#32086)

Fixed

  • Corrected suggested dependencies (#32072, c01a70e)
  • Avoid deadlock in test when sharing process group (#32067)

Fixed

  • Corrected suggested dependencies (#32072, c01a70e)
  • Avoid deadlock in test when sharing process group (#32067)

v7.2.2 (2020-03-20)

Fixed

  • Fixed empty data for blade components (#32032)
  • Fixed subdirectories when making components by make:component (#32030)
  • Fixed serialization of models when sending notifications (#32051)
  • Fixed route trailing slash in cached routes matcher (#32048)

Changed

  • Throw exception for non existing component alias (#32036)
  • Don't overwrite published stub files by default in stub:publish command (#32038)

v7.2.1 (2020-03-19)

Fixed

  • Enabling Windows absolute cache paths normalizing (#31985, adfcb59)
  • Fixed blade newlines (#32026)
  • Fixed exception rendering in debug mode (#32027)
  • Fixed route naming issue (#32028)

v7.2.0 (2020-03-17)

Added

  • Added Illuminate\Testing\PendingCommand::expectsConfirmation() (#31965)
  • Allowed configuring the timeout for the smtp mail driver (#31973)
  • Added Http client query string support (#31996)

Fixed

  • Fixed cookie helper signature , matching match CookieFactory (#31974)
  • Added missing ramsey/uuid dependency to Illuminate/Queue/composer.json (#31988)
  • Fixed output of component attributes in View (#31994)

Changed

  • Publish the form request stub used by RequestMakeCommand (#31962)
  • Handle prefix update on route level prefix (449c80)
  • Ensure SqsQueue queues are only suffixed once (#31925)
  • Added space after component closing tag for the View (#32005)

v6.18.2 (2020-03-17)

Fixed

  • Fixed scheduler dependency assumptions (#31894)
  • Corrected suggested dependencies (bb0ec42)
  • Unset pivotParent on Pivot::unsetRelations() (#31956)
  • Fixed cookie helper signature , matching match CookieFactory (#31974)

v7.1.3 (2020-03-14)

Fixed

  • Unset pivotParent on Pivot::unsetRelations() (#31956)

Changed

  • Escape merged attributes by default in Illuminate\View\ComponentAttributeBag (83c8e6e)

v7.1.2 (2020-03-13)

Fixed

  • Corrected suggested dependencies (bb0ec42)
  • Fixed null value injected from container in routes (#31867, c666c42)

Changed

  • Escape attributes automatically in some situations in Illuminate\View\Compilers\ComponentTagCompiler (#31945)

v7.1.1 (2020-03-12)

Added

  • Added dispatchToQueue() to BusFake (#31935)
  • Support either order of arguments for symmetry with livewire (8d558670)

Fixed

  • Bring --daemon option back to queue:work command (24c1818)
  • Fixed scheduler dependency assumptions (#31894)
  • Fixed ComponentAttributeBag merge behaviour (#31932)

Changed

  • Intelligently drop unnamed prefix name routes when caching (#31917)
  • Closure jobs needs illuminate/queue (#31933)
  • Have a cache aware interface instead of concrete checks (#31903)

v7.1.0 (2020-03-10)

Added

  • Added Illuminate\Routing\RouteRegistrar::apiResource() method (#31857)
  • Added optional $table parameter to ForeignIdColumnDefinition::constrained() method (#31853)

Fixed

  • Fixed phpredis "zadd" and "exists" on cluster (#31838)
  • Fixed trailing slash in Illuminate\Routing\CompiledRouteCollection::match() (3d58cd9, ac6f3a8)
  • Fixed "srid" mysql schema (#31852)
  • Fixed Microsoft ODBC lost connection handling (#31879)

Changed

  • Fire MessageLogged event after the message has been logged (not before) (#31843)
  • Avoid using array_merge_recursive in HTTP client (#31858)
  • Expire the jobs cache keys after 1 day (#31854)
  • Avoid global app() when compiling components (#31868)

v6.18.1 (2020-03-10)

Fixed

  • Fixed array lock release behavior (#31795)
  • Fixed model restoring right after being soft deleting (#31719)
  • Fixed phpredis "zadd" and "exists" on cluster (#31838)
  • Fixed "srid" mysql schema (#31852)
  • Fixed Microsoft ODBC lost connection handling (#31879)

v7.0.8 (2020-03-08)

Added

  • Added Illuminate\Mail\Mailable::when() method (#31828)

Fixed

  • Match Symfony's Command::setHidden declaration (#31840)
  • Fixed dynamically adding of routes during caching (#31829)

Changed

  • Update the encryption algorithm to provide deterministic encryption sizes (#31721)

v7.0.7 (2020-03-07)

Fixed

  • Fixed type hint for Request::get() method (#31826)
  • Add missing public methods to Illuminate\Routing\RouteCollectionInterface (e4f477c)

v7.0.6 (2020-03-06)

Added

  • Added queue suffix for SQS driver (#31784)

Fixed

  • Fixed model binding when route cached (af80685)
  • Fixed incompatible Factory contract for MailFacade (#31809)

Changed

  • Fixed typehints in Illuminate\Foundation\Application::handle() (#31806)

v7.0.5 (2020-03-06)

Fixed

  • Fixed Illuminate\Http\Client\PendingRequest::withCookies() method (36d783c)
  • Catch Symfony MethodNotAllowedException exception in CompiledRouteCollection::match() method (#31762)
  • Fixed a bug with slash prefix in the route (#31760)
  • Fixed root URI not showing in the route:list (#31771)
  • Fixed model restoring right after being soft deleting (#31719)
  • Fixed array lock release behavior (#31795)
  • Fixed Illuminate\Support\Str::slug() method (e4f22d8)

Changed

  • Throw exception for duplicate route names in Illuminate\Routing\AbstractRouteCollection::addToSymfonyRoutesCollection() method (#31755)
  • Revert disabling expired views checks (#31798)

v7.0.4 (2020-03-05)

Changed

  • Changed of route prefix parameter parsing (b38e179)

v7.0.3 (2020-03-04)

Fixed

  • Fixed route caching attempt in Illuminate\Routing\CompiledRouteCollection::newRoute() (90b0167)
  • Catch Symfony exception in CompiledRouteCollection::match() method (#31738)
  • Fixed Eloquent model casting (2b395cd)
  • Fixed UrlGenerator constructor (#31740)

Changed

  • Added message to Illuminate\Http\Client\RequestException (#31720)

v7.0.2 (2020-03-04)

Fixed

  • Fixed ascii() \ isAscii() \ slug() methods on the Str class with null value in the methods (#31717)
  • Fixed trim of the prefix in the CompiledRouteCollection::newRoute() (ce0355c, b842c65)

Changed

  • remove comments before compiling components in the BladeCompiler (2964d2d)

v7.0.1 (2020-03-03)

Fixed

  • Fixed Illuminate\View\Component::withAttributes() method (c81ffad)

v7.0.0 (2020-03-03)

Check the upgrade guide in the Official Laravel Upgrade Documentation. Also you can see some release notes in the Official Laravel Release Documentation.

v6.18.0 (2020-03-03)

Added

  • Added Arr::hasAny() method (#31636)

Fixed

  • Use correct locale when resolving Faker from the container (#31615)
  • Fixed loading deferred providers for binding interfaces and implementations (#31629, 1764ff7)

Changed

  • Make newPivotQuery() method public (#31677)
  • Allowed easier customization of the queued mailable job (#31684)
  • Expose Notification Id within Message Data in Illuminate\Notifications\Channels\MailChannel (#31632)

v6.17.1 (2020-02-26)

Changed

  • Don`t do chmod in File cache in case if permission not set (#31593)

v6.17.0 (2020-02-25)

Added

  • Allowed private-encrypted pusher channels (#31559, ceabaef, 8215e0d)
  • Added file permission config option for the File cache store (#31579)
  • Added Connection refused and running with the --read-only option so it cannot execute this statement to DetectsLostConnections (#31539)

Reverted

Fixed

  • Fixed issue Content Type not specified (#31533)

Changed

  • Allowed cache helper to have an optional expiration parameter (#31554)
  • Allowed passing of strings to TestResponse::dumpSession() method (#31583)
  • Consider mailto: and tel: links in the subcopy actionUrl label in emails (#31523, 641a7cd)
  • Exclude mariaDB from database queue support for new SKIP LOCKED (fff96e7)

v6.16.0 (2020-02-18)

Added

  • Added Guzzle 7 support (#31484)
  • Added Illuminate\Database\Query\Builder::groupByRaw() (#31498)
  • Added SQLite JSON update support with json_patch (#31492)

Fixed

  • Fixed appendRow on console table (#31469)
  • Fixed password check in EloquentUserProvider::retrieveByCredentials() (4436662)

Revert

  • Revert table feature in the console output (4094d78)

Changed

  • Change MySql nullable modifier to allow generated columns to be not null (#31452)
  • Throw exception on empty collection in assertSentTo() \ assertNotSentTo() methods in NotificationFake class (#31471)

v6.15.1 (2020-02-12)

Added

  • Added whereNull and whereNotNull to Collection (#31425)
  • Added Illuminate\Foundation\Testing\MockStream class (#31447)

Fixed

  • Fixed event:list command for shows non-registered events (#31444)
  • Fixed postgres grammar for nested json arrays with (#31448, b3d0da1)

v6.15.0 (2020-02-11)

Added

  • Added Illuminate\Auth\Events\Validated event (#31357, 7ddac28)
  • Make Blueprint support Grammar's macro (#31365)
  • Added Macroable trait to Illuminate\Console\Scheduling\Schedule class (#31354)
  • Added support dispatchAfterResponse in BusFake (#31418, e59597f)
  • Added Illuminate\Foundation\Exceptions\Handler::getHttpExceptionView() (#31420)
  • Allowed appending of rows to Artisan tables (#31426)

Fixed

  • Fixed locks for sqlsrv queue (5868066)
  • Fixed Illuminate\Events\Dispatcher::hasListeners() (#31403, c80302e)
  • Fixed testing with unencrypted cookies (#31390)

Changed

  • Allowed multiple paths to be passed to migrate fresh and migrate refresh commands (#31381)
  • Split Console InteractsWithIO to external trait (#31376)
  • Added sms link as valid URL in UrlGenerator::isValid() method (#31382)
  • Upgrade CommonMark and use the bundled table extension (#31411)
  • Ensure Application::$terminatingCallbacks are reset on Application::flush() (#31413)
  • Remove serializer option in PhpRedisConnector::createClient() (#31417)

v6.14.0 (2020-02-04)

Added

  • Added Illuminate\Bus\Dispatcher::dispatchAfterResponse() method (#31300, 8a3cdb0)
  • Added Illuminate\Support\Testing\Fakes\QueueFake::assertPushedWithoutChain() method (#31332, 7fcc6b5)
  • Added Macroable trait to the Illuminate\Events\Dispatcher (#31317)
  • Added NoPendingMigrations event (#31289, 739fcea)

Fixed

  • Used current DB to create Doctrine Connections (#31278)
  • Removed duplicate output when publishing tags in vendor:publish command (#31333)
  • Fixed plucking column name containing a space (#31299)
  • Fixed bug with wildcard caching in event dispatcher (#31313)
  • Fixed infinite value for RedisStore (#31348)
  • Fixed dropping columns in SQLServer with default value (#31341)

Changed

  • Use SKIP LOCKED for mysql 8.1 and pgsql 9.5 queue workers (#31287)
  • Dont merge middleware from method and property in Illuminate\Bus\Queueable::middleware() (#31301)
  • Split specifyParameter() from Illuminate\Console\Command to HasParameters trait (#31254)
  • Make sure changing a database field to json does not include charset (#31343)

v6.13.1 (2020-01-28)

Fixed

  • Fixed error on queue:work database on Windows (#31277)

v6.13.0 (2020-01-28)

Added

  • Added --api option to the make:model command (#31197, #31222)
  • Added PendingResourceRegistration::shallow() method (#31208, 104c539)
  • Allowed formatting an implicit attribute using a closure (#31246)
  • Added Filesystem::ensureDirectoryExists() method (8a8eed4)
  • Added support to Storage::url() for the Ftp driver (#31258, b8790e5)

Fixed

  • Fixed laravel migrations when migrating to sql server (dropColumn with default value) (#31229)
  • Fixed handleBeginTransactionException() method calling pdo property instead of getPdo() method (#31233)
  • Fixed channel names when broadcasting via redis (#31261)
  • Replace asterisks before validation (#31257)

Changed

  • Reset timeout handler after worker loop (#31198)

v6.12.0 (2020-01-21)

Added

  • Added ServiceProvider::loadFactoriesFrom() method (#31133)
  • Added TestResponse::dumpSession() method (#31131)
  • Added Str::isUuid() method (#31148)
  • Restored phpunit 7 support (#31113)
  • Added Request::boolean() method (#31160)
  • Added Database\Eloquent\FactoryBuilder::createMany() (#31171, 6553d59)
  • Added missing options for PhpRedis (#31182)

Fixed

  • Fixed Cache\RedisLock::acquire() (#31168, 8683a3d)
  • Fixed database url parsing for connections with no database specified (#31185)
  • Prevent ambiguous column with table name prefix (#31174)

Optimization

  • Fixed memory usage on downloading large files (#31163)

Changed

  • Replace Event Dispatcher in resolved cache repositories when Event::fake() is used (#31119, 0a70beb)

v6.11.0 (2020-01-14)

Added

  • Added Illuminate\Database\Eloquent\Builder::firstWhere() method (#31089)
  • Redis Broadcaster: Broadcast to multiple channels at once (#31108)

Fixed

  • Fixed undefined property in WithFaker::makeFaker() (#31083)
  • Fixed Str::afterLast() method (#31095)
  • Fixed insert float into MySQL with PHP 7.3 (#31100)
  • Fixed refresh on Model with customized pivot attribute name (#31125, 678b26b)

Changed

  • Remove all indentation in blade templates (917ee51)
  • Added mailable names to assertion messages in MailFake::assertNothingSent() and MailFake::assertNothingQueued() (#31106)
  • Search for similar results in assertDatabaseHas() (#31042, 2103eb7)

v6.10.1 (2020-01-08)

Changed

  • Updated some blade templates (f17e347)

v6.10.0 (2020-01-07)

Added

  • Added withoutMix() and withMix() test helpers (#30900)
  • Added validateWithBag() macro to Request (#30896)
  • Added PHPUnit 9 support (#30947)
  • Added exclude_if and exclude_unless validation rules (#30835, c0fdb56)
  • Added generated columns (virtual/stored) support for PostgreSQL (#30971)
  • Added mixin support to Eloquent builder (#30978, 28fa74e)
  • Make the Redis Connection Macroable (#31020)
  • Added PackageManifest::config() method (#31039, 9b73540)
  • Added redis.connection aliases in container (#31034)
  • Extracted CallsCommands feature from Illuminate\Console\Command (#31026, ef72716)
  • Allowed absolute file path for Storage::putFile() (#31040)

Changed

  • Handled passing too many arguments to @slot (#30893, 878f159)
  • Make ThrottleRequestsException extend TooManyRequestsHttpException (#30943)
  • Used league/commonmark instead of erusev/parsedown for mail markdown (#30982)
  • Regenerate token on logout (b2af428)
  • Make RedisQueue::getConnection() public (#31016)
  • Delete dependency graham-campbell/testbench-core (#30989)
  • Resolve Faker\Generator out of the container if it is bound (#30992)

Fixed

  • Fixed float database types in Blueprint (#30891)
  • Fixed code that depended on getenv() (#30924)
  • Prevented making actual pdo connections while reconnecting (#30998)
  • Fixed exclude_if \ exclude_unless validation rules for nested data (#31006)
  • Update dev-master branch aliases from 6.0-dev to 6.x-dev (d06cc79)
  • Utilize Symfonyā€™s PSR Factory. Fixed #31017 (#31018, #31027)
  • Used model connection by default in the database validators (#31037)

Optimization

  • Optimize Service Provider registration (#30960)
  • Optimize runningInConsole method (#30922)
  • Delay instantiation of translator and view factory (#31009)

Deprecated

  • Deprecate PendingMail::sendNow() and remove unneeded check (#30999)

Reverted

Refactoring

  • Refactoring of BladeCompiler::compileString() method (08887f9)

v6.9.0 (2019-12-19)

Added

  • Added MIME type argument to Testing/FileFactory::create() (#30870)
  • Added seed to all option when creating the model (make:model command) (#30874)
  • Allowed configurable emergency logger (#30873)
  • Added prependMiddlewareToGroup() / appendMiddlewareToGroup() / prependToMiddlewarePriority() / appendToMiddlewarePriority() to Kernal for manipulating middleware (6f33feb)

Reverted

Fixed

  • Fixed Builder::withCount() binding error when a scope is added into related model with binding in a sub-select (#30869)

Changed

  • Dont throw exception when session is not set in AuthenticateSession middleware (4de1d24)

v6.8.0 (2019-12-17)

Added

  • Allowed packages to use custom markdown mail themes (#30814, 2206d52)
  • Added more quotes to Inspiring (4a7d566, 9693ced)
  • Added support for nested arrays in TestResponse::assertViewHas() (#30837)
  • Added Model::setRawAttribute() (#30853)
  • Added --force option to the make:controller resource (#30856)
  • Allowed passing an array to Resource::collection() (#30800)
  • Implemented ArrayAccess on JsonResponse and TestResponse (#30817)
  • Added --seed option to the make::model resource (#30828, 2cd9417)

Fixed

  • Fixed two index creation instead of one when using change() (#30843)
  • Prevent duplicate attachments in the Mailable (3c8ccc2)
  • Fixed ServiceProvider for PHP 7.4 in Lumen (#30819)
  • Fixed non-eloquent model validation in database validation rules (#30840)

Changed

  • Changed rescue() helper (#30838)
  • Added previous exception to EntryNotFoundException thrown in Container.php (#30862)
  • Changed DatabaseNotification::$keyType to match uuid (#30823)

v6.7.0 (2019-12-10)

Added

  • Added getQualifiedCreatedAtColumn() and getQualifiedUpdatedAtColumn() methods to HasTimestamps concern (#30792)
  • Added exceptionContext() method to the Exceptions\Handler (#30780)
  • Added ability for postmark transport to throw errors (#30799, 4320b82)
  • Added withoutRelations() and unsetRelations() methods to HasRelationships (#30802)
  • Added ResourceCollection::preserveQueryParameters() for preserve query parameters on paginated api resources (#30745, e92a708)

Fixed

  • Fixed explicit models in string-based database validation rules (#30790)
  • Fixed Routing\RedirectController() (#30783)

Changed

  • Reconnect PhpRedisConnection on connection missing (#30778)
  • Improved ShouldBroadcastNow performance (#30797, 5b3cc97)

v6.6.2 (2019-12-05)

Added

  • Added Illuminate\Support\Facades\Facade::partialMock() method (#30754)
  • Added of support retryAfter option on queued listeners (#30743)

Fixed

  • Fixed zero parameter for routes (#30768)

Changed

  • Changed getAllViews() method visibility from protected to public in all schema builders (#30757)

v6.6.1 (2019-12-03)

Added

  • Added setInput() and setOutput() methods to Illuminate\Console\Command (#30706)

Fixed

  • Fixed RouteUrlGenerator with empty string for required parameter (#30714)

Changed

  • Force usage getting timestamps columns in model (#30697)

Reverted

v6.6.0 (2019-11-26)

Added

  • Allowed explicit Model definitions in database rules (#30653, 9beceac)
  • Allowed ResponseFactory::view() to return first view (#30651)
  • Added Foundation\Testing\Concerns\InteractsWithDatabase::assertDeleted() method (#30648)
  • Added Illuminate\Routing\Router::head() (#30646)
  • Added wherePivotNotIn() and orWherePivotNotIn() methods to BelongsToMany (#30671)
  • Added options in SqlServerConnector to encrypt data with Azure Key vault (#30636)

Fixed

  • Fixed errors in Illuminate\Http\Testing\FileFactory::create() (#30632)
  • Fixed routing bug that causes missing parameters to be ignored (#30659)

Changed

  • Updated error message in PhpRedisConnector::createClient() if redis extension is not loaded (#30673, 184a0f4)
  • Updated windows_os() helper to use PHP_OS_FAMILY (#30660)

v6.5.2 (2019-11-19)

Added

  • Allowed model serialization on jobs for typed properties (#30604, #30605, 920c364)
  • Allowed fallback when facade root accessor has previously been resolved (#30616)
  • Added support for separation between geometry and geography types for Postgres (#30545)
  • Added createWithContent() method to Illuminate\Http\Testing\File and Illuminate\Http\Testing\FileFactory (2cc6fa3, 181db51)

Refactoring

  • Improved PostgresGrammar::formatPostGisType() method readability (#30593)

Changed

  • Added symfony/debug dependency to illuminate/pipeline (#30611)
  • Override BelongsToMany::cursor() to hydrate pivot relations (#30580)
  • Ignore Redis prefix when verifying channel access in RedisBroadcaster (#30597, d77ce36)

v6.5.1 (2019-11-12)

Added

  • Added includeUnless directive (#30538)

Fixed

  • Fixed default value for $count in PhpRedisConnection::spop() method (#30546)
  • Fixed breaking compatibility with multi-schema postgres (#30562, 6460d2b)
  • Fixed Model::isDirty() with collection / object casts (#30565)
  • Fixed bcc in MailgunTransport::send() (#30569)

Changed

  • Remove illuminate/support dependency from Container package (#30518, #30528)

v6.5.0 (2019-11-05)

Added

  • Added LazyCollection::remember() method (#30443)
  • Added Str::afterLast() and Str::beforeLast() methods (#30507)
  • Added existsOr() and doesntExistOr() methods to the query builder (#30495)
  • Added unless condition to Blade custom if directives (#30492)

Changed

  • Added reconnect if missing connection when beginning transaction (#30474)
  • Set Redis cluster prefix with PhpRedis (#30461)

v6.4.1 (2019-10-29)

Added

  • Added ScheduledTaskSkipped event when a scheduled command was filtered from running (#30407)
  • Added Login timeout expired to DetectsLostConnections (#30362)
  • Added missing method to Illuminate\Filesystem\Filesystem and Illuminate\Filesystem\FilesystemAdapter classes (#30441)

Changed

  • Make vendor:publish command more informative (#30408, 65d040d)
  • Accepted underscores URL in the URL validator (#30417)
  • Updated artisan down output to be consistent with artisan up (#30422)
  • Changed !empty to isset for changing redis database (#30420)
  • Throw an exception when signing route got in parameter keys signature (#30444, 71af732)

Fixed

  • Fixed of retrieving view config in ServiceProvider::loadViewsFrom() for Lumen (#30404)

v6.4.0 (2019-10-23)

Added

  • Added missing() method to Request class (#30320)
  • Added Pipeline::pipes() method (#30346)
  • Added TestResponse::assertCreated() method (#30368)

Changed

  • Added connection is no longer usable to DetectsLostConnections (#30362)
  • Implemented parse ID on find method for many to many relation (#30359)
  • Improvements on subqueries (#30307, 3f3b621)
  • Pass mail data to theme css in Markdown::render() method (#30376)
  • Handle ajax requests in RequirePassword middleware (#30390, 331c354)

Fixed

  • Fixed retry() with $times value less then 1 (#30356)
  • Fixed last_modified option in SetCacheHeader (#30335)
  • Fixed the Filesystem manager's exception on unsupported driver (#30331, #30369)
  • Fixed shouldQueue() check for bound event listeners (#30378)
  • Used exit code 1 when migration table not found (#30321)
  • Alleviate breaking change introduced by password confirm feature (#30389)

Security:

v6.3.0 (2019-10-15)

Added

  • Added ability to override setUserPassword on password reset (#30218)
  • Added firing deleting \ deleted events in MorphPivot (#30229)
  • Added locking mechanism for the array cache driver (#30253)
  • Added dropAllViews functionality to the SQL Server builder (#30222)

Optimization

  • Optimize eager loading memory handling (#30248)

Fixed

  • Fixed extra ? for empty query string in RouteUrlGenerator::getRouteQueryString() (#30280)

Changed

  • Updated list of URI schemes for Url validator (#30220)
  • Added schema name when dropping all FKs in SQL Server (#30221)
  • Used contracts in RequirePassword middleware (#30215)
  • Added ability to return array in receivesBroadcastNotificationsOn if channelName is array (#30242, 2faadcd)

v6.2.0 (2019-10-08)

Added

  • Added support for callable objects in Container::call() (#30156)
  • Add multipolygonz type for postgreSQL (#30173)
  • Add "unauthenticated" method in auth middleware (#30177)
  • Add partialMock shorthand (#30202)
  • Allow Storage::put to accept a Psr StreamInterface (#30179)
  • Implement new password rule and password confirmation (#30214)

Changed

  • Remove unnecessary param passed to updatePackageArray method (#30155)
  • Add optional connection name to DatabaseUserProvider (#30154)
  • Remove brackets arround URL php artisan serve (#30168)
  • Apply limit to database rather than collection (#30148)
  • Allow to use scoped macro in nested queries (#30127)
  • Added array to json conversion for sqlite (#30133)
  • Use the policies() method instead of the property policies (#30189)
  • Split hasValidSignature method (#30208)

Fixed

  • validateDimensions() handle image/svg MIME (#30204)

v6.1.0 (2019-10-01)

Added

  • Added Illuminate\Support\LazyCollection::eager() method (#29832)
  • Added forgetChannel() and getChannels() methods to Illuminate\Log\LogManager (#30132, a52a0dd)
  • Added Illuminate\Foundation\Testing\TestResponse::assertNoContent() method (#30125)
  • Added InteractsWithQueue to SendQueueNotifications (#30140)
  • Added SendQueueNotifications::retryUntil() method (#30141)
  • Added methods for sending cookies with test requests (#30101)
  • Added support of job middleware for queued notifications (#30070)

Fixed

  • Fixed migration class duplicate check in make:migration command (#30095)
  • Fixed monolog v2 handler preparation (#30123)
  • Fixed return of callback value for DurationLimiter (#30143)

Changed

  • Added runtime information output for seeders (#30086)
  • Added strict parameter to Illuminate\Foundation\Testing\TestResponse::assertJsonPath() (#30142)
  • Added deletedAtColumn optional parameter to Foundation\Testing\Concerns\InteractsWithDatabase::assertSoftDeleted() (#30111)

Improved

  • Improved AuthServiceProvider::registerEventRebindHandler() in case if guard is not initialized (#30105)

v6.0.4 (2019-09-24)

Added

  • Added TestResponse::assertJsonPath() method (#29957)
  • Added hasMacro \ getGlobalMacro \ hasGlobalMacro methods to Eloquent Builder (#30008)
  • Added Illuminate\Database\Eloquent\Relations\BelongsToMany::getPivotColumns() method (#30049)
  • Added ScheduledTaskFinished \ ScheduledTaskStarting events to signal when scheduled task runs (#29888)
  • Allowing adding command arguments and options with InputArgument \ InputOption objects (#29987)

Fixed

  • Fixed __() with null parameter (#29967)
  • Fixed modifying updated_at column on custom pivot model (#29970)
  • Fixed Illuminate\Redis\Limiters\ConcurrencyLimiter (#30005)
  • Fixed VerifyCsrfToken middleware when response object instance of Responsable interface (#29972)
  • Fixed Postgresql column creation without optional precision (#29873)
  • Fixed migrations orders with multiple path with certain filenames (#29996)
  • Fixed adding NotFoundHttpException to "allowed" exceptions in tests (#29975)

Changed

  • Make it possible to disable encryption via 0/false (#29985)
  • Allowed a symfony file instance in validate dimensions (#30009)
  • Create storage fakes with custom configuration (#29999)
  • Set locale in PendingMail only if locale present conditionally (dd1e0a6)
  • Improved sorting of imports alphabetically on class generation from stub (#29951)

Refactoring

  • Changed imports to Alpha ordering in stubs (#29954, #29958)
  • Used value helper where possible (#29959)
  • Improved readability in auth.throttle translation (#30011, #30017)

v6.0.3 (2019-09-10)

Reverted

Refactoring

  • Converted call_user_func where appropriate to native calls (#29932)
  • Changed imports to Alpha ordering (#29933)

v6.0.2 (2019-09-10)

Changed

  • Used Application::normalizeCachePath() method to define cache path`s (#29890, ac9dbf6)
  • Wrapped MySQL default values in parentheses (#29878)

Fixed

  • Prevent event auto discovery from crashing when trying to instantiate files without php classes (#29895)
  • Fix resolving class command via container (#29869)

v6.0.1 (2019-09-06)

Fixed

  • Fixed Schedule::runInBackground() not fired on Windows (#29826)

Changed

  • throw Symfony\Component\Routing\Exception\RouteNotFoundException instead of InvalidArgumentException in UrlGenerator::route() (#29861)

Reverted

Check the upgrade guide in the Official Laravel Documentation.

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

  • Added note that the GD extension is required for generating images (#29770, #29831)
  • Changed monolog/monolog version to ^1.12 (#29837)

v5.8.34 (2019-08-27)

Fixed

  • Fixed MailMessage::render() if view method was used (#29698)
  • Fixed setting of numeric values as model attribute (#29714)
  • Fixed mocking of events until method in MocksApplicationServices (#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 and questions expectations (#29580)
  • Added ignoring of classes which are not instantiable during event discovery (#29587)
  • Used real classname for seeders in the output (#29601)

Refactoring

v5.8.32 (2019-08-13)

Fixed

  • Fixed top level wildcard validation for distinct validator (#29499)
  • Fixed resolving of columns with schema references in Postgres (#29448)
  • Only remove the event mutex if it was created (#29526)
  • Fixed restoring serialized collection with deleted models (#29533, 74b62bb)

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() and MakesHttpRequests::optionJson() methods (#29258)
  • Added Blueprint::uuidMorphs() and Blueprint::nullableUuidMorphs() methods (#29289)
  • Added MailgunTransport::getEndpoint() and MailgunTransport::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 and int values in orWhereDay(), orWhereMonth(), orWhereYear() methods in the Builder (#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

  • Allocate memory for error handling to allow handling memory exhaustion limits (#29226)
  • Teardown test suite after using fail() method (#29267)

v5.8.29 (2019-07-16)

Added

  • Added possibility for WithFaker::makeFaker() use local app.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 and whereNotNull 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() and Builder::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() and Support\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 use app.mix_url config (#28952)
  • Added RedisManager::setDriver() method (#28985)
  • Added whereHasMorph() and corresponding methods to work with MorphTo relations (#28928)

Fixed

Changed

  • Prevented TestResponse::dump() and TestResponse::dumpHeaders() methods from ending execution of the script (#28960)
  • Allowed TestResponse::dump() and TestResponse::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:: with static:: in the Relation::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 to route: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

  • Allow TestResponse::assertViewHas() to see all data (#28893)
  • Let mix helper use app.asset_url (#28905)

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 via SERVER_PORT env variable (#28849, 6a18e73)
  • Allowed console environment argument to be separated with a space (#28869)
  • Added @endcomponentFirst directive (#28884)
  • Added optional parameter $when to retry helper (85c0801)

Fixed

  • Fixed Builder::dump() and Builder::dd() with global scopes (#28858)

Reverted

Changed

  • Handle SuspiciousOperationException in router as NotFoundHttpException (#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 and Recommended 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() when Model::cursor() used (#28804)

Changed

  • Made force an optional feature when using ConfirmableTrait. (#28742)
  • Suggest resolution when no relationship value is returned in the Model::getRelationshipFromMethod() (#28762)

v5.8.21 (2019-06-05)

Fixed

  • Fixed redis cluster connection parsing (2bcb405)

v5.8.20 (2019-06-04)

Added

  • Added viewAny() to dummy policy class (#28654, #28671)
  • Added fullpath option to make: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 and localdomain) 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 to ModelNotFoundException exception in ImplicitRouteBinding (#28588)

v5.8.18 (2019-05-21)

Added

  • Added html as a new valid extension for views (#28541)
  • Added: provide notification callback withSwiftMessage in MailMessage (#28535)

Fixed

  • Fixed Illuminate\Cache\FileStore::getPayload() in case of broken cache (#28536)
  • Fixed exception: The filename fallback must only contain ASCII characters in the Illuminate\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

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 the route:list command (#28459)
  • Added retryAfter in Mail\SendQueuedMailable and Notifications\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 and PredisConnection (f4e8d5c)

Fixed

  • Fixed session resolver in RoutingServiceProvider (without bind of session in Container) (#28438)
  • Fixed route:list command when routes were dynamically modified (#28460, #28463)
  • Fixed required validation with multiple passes() calls (#28502)
  • Fixed the collation bug when changing columns in a migration (#28514)
  • Added password to the RedisCluster only if redis >= 4.3.0 (1371940)
  • Used escapeshellarg on windows symlink in Filesystem::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 to MailMessage (#28386)

Fixed

  • Fixed the remaining issues with registering custom Doctrine types (#28375)
  • Fixed fromSub() and joinSub() with table prefix in Query\Builder (#28400)
  • Fixed false positives for Schema::hasTable() with views (#28401)
  • Fixed sync results with custom Pivot model (#28416, e31d131)

Changed

  • Modified None And React presets with vue-template-compiler (#28389)
  • Changed navbar-laravel class to bg-white shadow-sm class in layouts\app.stub (#28417)
  • Don't execute query in Builder::findMany() when ids are empty Arrayable (#28432)
  • Added parameter password for RedisCluster 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

Refactoring

  • Replace code with Null Coalescing Operator (#28280, #28287)

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

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() to Illuminate\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 for SQL Server (#28176)
  • Fixed whereDay and whereMonth when passing int 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 on DynamoDbStore (#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 on Illuminate\Support\Facades\Date (#28129)
  • Allowed lock to be configured in local 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 to app_path during string replacement in Illuminate\Foundation\Console\Kernel::load() (82ded9a)

Refactoring

  • Refactoring of Illuminate\Foundation\Events\DiscoverEvents::within() (#28122, 006f999)

v5.8.10 (2019-04-04)

Added

  • Added replicating model event (#28077)
  • Make NotificationFake macroable (#28091)

Fixed

  • Exclude non-existing directories from event discovery (#28098)

Changed

  • Sorting of events in event:list command (3437751)
  • Removed path hint in compiled view (33ce7bb)

v5.8.9 (2019-04-02)

Added

Fixed

  • Fixed serializing a collection from a Resource with preserveKeys property (#27985)
  • Fixed: SoftDelete::runSoftDelete and SoftDelete::performDeleteOnModel with overwritten Model::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 to resolve 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 with getenv() (#27958, c37702c)
  • Used stripslashes for Validation\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 and odd flags to the Loop variable in the blade (#27883)

Changed

  • Add replacement for lower danish Ʀ (#27886)
  • Show error message from exception, if message exist for 403.blade.php and 503.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

  • Changed Validation\Rules\Unique.php (da4d4a4). You can read more here

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 take Model/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 as string in the Notification (#27710)
  • Fixed StartSession middleware (499e4fe)
  • Fixed stack channel's bug related to the level (#27726, bc884bb)
  • Fixed email validation for not string values (#27735)

Changed

  • Check if MessageBag is empty before checking keys exist in the MessageBag (#27719)

v5.8.2 (2019-02-27)

Fixed

  • Fixed quoted environment variable parsing (#27691)

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

  • Add support for Pheanstalk 4.x (#27622)
  • Allow configuration of token guard keys (#27585)

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

  • Fixed Postgres grammar when using union queries (#27589)
  • Fixed an issue when using Mail::queue to queue Mailables (#27618)
  • Fixed error in Foundation\Exceptions\Handler (#27632)

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 with withDefault() (#27411)"(9bbf644)

Changed

  • Improved error message in Illuminate\Foundation\Testing\TestResponse::assertJsonValidationErrors() (#27495, 98010da)
  • Illuminate\Support\Testing\Fakes\EventFake::dispatch() will return response (#27430)

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 of cache files for services, packages and routes (#27389)

Fixed

  • Fixed BelongsToMany pivot relationship child with loaded relations wakeup (#27358)
  • Fixed wrong class being used when eager loading nullable MorphTo with withDefault() (#27411)

Changed

  • Removed php_network_getaddresses: getaddrinfo failed: Name or service not known in DetectsLostConnections trait (#27418)

v5.7.24 (2019-01-30)

Fixed

v5.7.23 (2019-01-29)

Added

  • Added AbstractPaginator::getOptions() method (#27273)
  • Added Communication link failure to DetectsLostConnections trait (#27307)
  • Added orWhere() proxy for scopes to EloquentBuilder (#27281, 2e6fe85)
  • Allow the app path to be configured (#27332, d73e672)
  • Added config for using WhatFailureGroupHandler when StackDriver created for Logger (#27308 ,6a92651)

Fixed

  • Fixed QueueableCollection serialization of Eloquent Models when using Binary IDs (#27271)
  • Replaced newModelQuery() with newQueryWithoutRelationships() for UPDATE/DELETE queries (#27277)

Changed

  • Apply parameters to entire localization array (#27254)
  • Added line about expiring password reset in notification email (#27324, 80c5aec)
  • "Go Home" link will redirect to the home route on exception page (#27343)

v5.7.22 (2019-01-22)

Fixed

  • Fixed TestResponse::assertJsonValidationErrors() when there are no errors (#27190)

Changed

  • Allowed TestResponse::assertJsonMissingValidationErrors() to be called without an argument (#27176)
  • Updated vue preset's vue-stubs for laravel-mix 4 compatibility (#27229)
  • Updated preset to use @babel/preset-react (#27235)
  • Used config to resolve the database value during tests. (#27240)

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 return bool 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

  • Replaced get_called_class() to static::class (#27146)
  • Re-throw NoMatchingExpectationException from PendingCommand (#27158)

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 to DetectsLostConnections 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 for artisan migrate --pretend (#27015)
  • Fixed previousUrl in the session if the call is prefetch (#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() since Builder::update() already adds the UPDATED_AT timestamp. (#27026)
  • Changed Name or service not known to php_network_getaddresses: getaddrinfo failed: Name or service not known in DetectsLostConnections trait (#27054, 5459ac1)
  • Changed Eloquent ApiResource merge() methods to accept JsonResource 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

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 to DetectsLostConnections trait (#26760)
  • Added NOT VALID option for skipping validation when adding postgres foreign keys (#26775)

Fixed

  • Fixed: Using store on an uploaded file when you push an empty file (#26809)
  • Fixed hiding for hidden commands (#26781)

v5.7.16 (2018-12-05)

Added

  • Added localization for 403.blade.php and 503.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 in app.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 in UrlGenerator 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

  • Fixed duplicate validation issue in FormRequest::validated method (#26604)
  • Prevent breaking eager loading with string keys (#26622)

v5.7.14 (2018-11-21)

Added

  • Added Macroable trait to Illuminate\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 make log for mail driver configurable (#26510)
  • Allowed asset root urls to be configurable via app.asset_url (9172a67)
  • Added Error while sending QUERY packet string to DetectsLostConnections 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 to Collection (#26345)
  • Added Illuminate\Support\Collection::some method (#26376, 8f7e647)
  • Added Illuminate\Cache\Repository::missing method (#26351)
  • Added Macroable trait to Illuminate\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 in UrlGenerator::signedRoute (#26265)
  • Fixed error in resource building after running php artisan preset none command (41becda, #26244)
  • Fixed whereDoesntHave() and doesntHave() with nested relationships (#26228)
  • Fixed filesystem locking hangs in PackageManifest::build() (#26254)

Changed

  • Made expectation closure optional for InteractsWithContainer::mock and InteractsWithContainer::spy (#26242)
  • Allowed multiple createPayloadCallback on queues (#26250, 6e3d568)
  • Changed wording on default 403 view (#26258)
  • Bump vue.js to ^2.5.17 in artisan 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 to Routing/Redirector.php (#26227)
  • Added ORA-03114 string to DetectsLostConnections trait (#26233)

Fixed

  • Fixed an issue where the worker process would not be killed by the listener when the timeout is exceeded (#25981)

Changed

  • Reverted filesystem changes which were done in #26010 (#26231)

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 in Foundation/Testing/Concerns/InteractsWithDatabase.php (#26133 , #26148)
  • Added possibility to define exclude methods on registered apiResource (#26149)
  • Added filp/whoops to suggest in composer.json (#26180)
  • Added mock and spy methods to Foundation/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 from polymorphic 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 a null signature in UrlGenerator.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 and vue-stubs/webpack.mix.js presets (#26119)
  • Make assertSessionHasNoErrors in TestResponse.php print the unexpected errors (#26039, e6bdf8a)
  • Replaced the remaining occurrences of newQuery() to newModelQuery() in UPDATE/DELETE queries. (#26158)
  • Improved findOrFail() exceptions in BelongsToMany.php and HasManyThrough.php relations (#26182)

Changed realization

  • Reversed ternary condition in Arr::wrap to make it clearer (#26150)
  • Simplified formatAction in UrlGenerator.php (#26121)
  • Simplified isChainOfObjects method in Support/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 to Inspiring.php (#25968)
  • Mailable render method respects Mailable@locale property (#25990)
  • Added some meta data to the notification mails (477273c)
  • Added Macroable trait to PendingResourceRegistration (#25947)
  • Added assertSessionDoesntHaveErrors method to TestResponse.php (#25949, 3005706)
  • Enable passing options to custom presets (#25930)

Fixed

  • Fix missing illuminate/support dependency in illuminate/container (#25955)
  • Extend grammar (#25944)

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() in data_get() (#25938)

v5.7.8 (2018-10-04)

Added

  • Add --step to migrate:fresh command (#25897)
  • Allow destroy method in Model to accept a collection of ids (#25878)
  • Add AsPivot trait (#25851)

Fixed

  • Fixed wrap table for sql server (#25896)

Changed

Changed (only realization)

v5.6.39 (2018-10-04)

Fixed

Changed

Fixed

  • Fix pivot timestamp columns without parent (#25746)
  • Fix "sometimes" validation (#25852)

v5.7.7 (2018-10-02)

Added

Fixed

  • Fix each method on BelongsToMany relationships (#25832)
  • Fix prefixed table indexes (#25867)
  • Fix be method in InteractsWithAuthentication 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

Changed (only realization)

  • Simplify save method MorphOneOrMany 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 in Middleware/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

Fixed

  • Make any column searchable with like in PostgreSQL (#25698)
  • Remove trailing newline from hot url in mix helper (#25699)

Changed

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

  • Fixed an issue when passing an array to Request::is() (#24885)
  • Fixed message string in NotificationFake::assertSentToTimes() (#24929)

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

  • 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

  • Added support for renaming indices (#24147)
  • Added Event::fakeFor() method (#24230)
  • Added @canany Blade directive (#24137)
  • Added TestReponse:: assertLocation() method (#24267)

Changed

  • Validation bypass for before and after rules when paired with date_format rule (#24191)

Fixed

  • Fixed an issue with Cache::increment() when expiration is null (#24228)
  • Ignore non-where bindings in nested where constraints (#24000)
  • Fixed withCount() binding problems (#24240)

Added

Changed

  • Support updating NPM dependencies from preset (#24189, a6542b0)
  • Support returning Responsable from middleware (#24201)

Added

  • Added FilesystemManager::forgetDisk() method (#24057, cbfb4fb)
  • Added --allow parameter to down 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 with chunk() (#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

  • Support passing Response and Responsable to abort() (4e29889)
  • Added pingBeforeIf and thenPingIf methods to task scheduler (#24077, 1bf54d2)
  • Added withDefault() support to MorphTo relationships (#24061)

Fixed

  • Fixed URL generator when request has base path (#24074)

Added

  • 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)

Fixed

  • Accept only two arguments on orWhereDate() (#24043)
  • Fixed relative route URL generation when using custom host formatter (#24051)

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 in ThrottlesLogins to 429 (#24002)
  • Throw exception if called command doesn't exist (#23942)
  • Made notification email translatable (#23903)

Fixed

  • 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

  • Added helpers for subquery joins (#23818)

Changed

  • Allow PendingResourceRegistration to be fluently registered (#23890)
  • Allow asserting an integer with assertSee*() (#23892)
  • Allow passing Collection to Rule::in() and Rule::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)

Fixed

  • Fixed variable reference in RedisTaggedCache::decrement() (#23736)
  • Check updated_at column existence in HasOneOrMany::update() (#23747)

Security

  • Check iv length in Encrypter::validPayload() (886d261)

Changed

  • Only set id on NotificationFake if no id is set (#23474)
  • Removed attribute filling from pivot models (#23554)

Fixed

  • Fixed to not mistakenly release mutex (#23607)
  • Revert breaking changes in ManagesLoops (#23681)

Security

  • Check iv length in Encrypter::validPayload() (28e53f2)

Added

  • Added SlackMessage::info() method (#23711)
  • Added SessionGuard::logoutOtherDevices() method (9c51e49)

Changed

  • Replaced Blade's or operator with null-coalescing operator (13f732e)

Fixed

  • Get Blade compiler from engine resolver (#23710)
  • Default to an empty string when validating the URL signatures (#23721)

Added

  • Added view:cache command (9fd1273, 2ab8acf)
  • Added min() and max() 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 in Application::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 from 401 to 403 (#23662, c99911f)

Fixed

  • Revered breaking changes in ManagesLoops (d0a2613)
  • Set exit status in serve command (#23689)

Added

  • Added fromSub() and fromRaw() 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() and assertForbidden() methods to TestResponse (#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 in Application::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)

Fixed

  • Fix for Carbon 1.24.1 (#23464)

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 in app.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 of str_contains() (ae4cb28)

Fixed

  • Fixed unique() call in Validator::validate() (#23432)
  • Fix for Carbon 1.24.0 (67d8a4b)

Fixed

Fixed

  • Fix for Carbon 1.24.0 (#23459)
  • Fixed --force flag on GeneratorCommand (#23427)

Changed

  • Regenerate token when regenerating the session (20e8419)

Fixed

  • Fixed an issue with resources when loading a single merge value with an associative array (#23414)

Changed

  • Added v-pre to dropdown link in app.stub (987c19f)

Fixed

  • Queue::bulk() fake now properly pushes expected jobs (#23389)
  • Set up loop variable correctly on all Traversable objects (#23388)
  • Fixed SQLiteGrammar::whereTime() formatting (#23408)

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() in getForeignKey() (#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ā€™s conflict (#23379)
  • Set up loop variable correctly on all Traversable objects (#23388, 49770ec)
  • Removed attribute filling from pivot model (#23401)

Changed

  • Upgrade Parsedown to 1.7.0 (14adb99)

Fixed

  • Fixed PostgresGrammar::whereTime() casting (#23318)

Added

  • Added SFTP filesystem driver (#23308)

Changed

  • Pass parent model to withDefault() callback (#23334)
  • Upgrade Parsedown to 1.7.0 (816f893)

Fixed

  • Fixed PostgresGrammar::whereTime() casting (#23323)
  • Fixed SQLiteGrammar::whereTime() correct (#23321)

Added

  • Added sortKeys() and sortKeysDesc() methods to Collection (#23286)

Changed

  • Return null from optional() helper if object property is undefined (#23267)
  • Cache event wildcard listeners (#23299, 82099cb)
  • Changed morphs() and nullableMorphs() to use unsignedBigInteger() (#23320)

Fixed

  • 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

  • Added model reference to MassAssignmentException (#23229)
  • Added support for setting the locale on Mailable (#23178, a432d9e)
  • Added new udiff methods to the Collection (#23107)

Fixed

Fixed

  • Fixed an issue with orWhere*() arguments (3368494)
  • Fixed tightenco/collect version (#23152, #23159)

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 to Request (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 from LogManager (#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 on GeneratorCommand (#23230)

Removed

Fixed

  • Fixed an issue in TestResponse::assertSessionHasErrors() (#23093)
  • Update Vue and React presets to Bootstrap v4 (8a9c5c4)

Changed

  • Support customization of schedule mutex cache store (20e2919)

Fixed

  • Reverted changes to TestResponse::assertSessionHasErrors() #23055 (0362a90)

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() to Application contract (#21034)
  • āš ļø Upgraded cron-expression to 2.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 to call() method in contracts (#22463)
  • Added --realpath argument to migration commands (#22852, 98842da)
  • Added --api argument to make: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 from RateLimiter::tooManyAttempts() (#22202)

Collections

  • āš ļø Fixed keyless calls to uniqueStrict() (#21854)
  • Added operator support to Collection@partition() (#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 in DetectsLostConnections (#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 to public (#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 with null (#21745)
  • Return class traits in use order from class_uses_recursive() (#22537)
  • Added Str::uuid() and Str::orderedUuid() (3d39604)

Logging

Mail

  • āš ļø 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() and getJobId() to Job contract (#21303)
  • Removed unused Worker::raiseFailedJobEvent() method (#21901)
  • Support blocking pop from Redis queues (#22284, dbad055, 5923416)

Requests

  • āš ļø Return false from expectsJson() 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 to Cookie\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 is true (#22812)

Routing

  • Added SetCacheHeaders middleware (#22389, f6f386b, df06357)
  • Support pulling rate limit from the user instance in ThrottleRequests (c9e6100)

Service Container

  • Support bulk binding in service providers during registration (#21961, 81e29b1)

Session

  • Support dot notation in Session::exists() (#22935)

Support

  • āš ļø Throw exception if Manager::driver() is called with null (#22018)
  • āš ļø Added hasCommandHandler(), getCommandHandler() and map() to Bus\Dispatcher contract (#22958, #22986)
  • Added useBootstrapThree() helper to paginators (c919402)

Task Scheduling

  • āš ļø Multi server scheduling cron support (#22216, 6563ba6)

Testing

  • āš ļø Switched to PHPUnit 7 (#23005)
  • Support fetching specific key when using json helpers (#22489)
  • Use DatabaseTransactions trait in RefreshDatabase (#22596)
  • Added assertSeeInOrder() and assertSeeTextInOrder() methods (#22915, #23038)

Validation

  • āš ļø Ignore SVGs in validateDimensions() (#21390)
  • āš ļø Renamed validate() to validateResolved() (33d8642)

Changed

  • Use path helpers in console commands (#22971)
  • Remove unnecessary escapeshellarg() call (#23025)
  • Use original attribute values in pivot where clauses (#23031, #23035)

Added

  • Added doesntExist() method to query builder (#22836, 9d2a7ca)
  • Added assertHeaderMissing() assertion (#22849, #22866)
  • Added support for higher order unique (#22851)
  • Added boolean toggle to withTrashed() (#22888)

Changed

  • Support Mix HMR with different host/port (#22826, 24897d6)
  • Make route filtering by method case-insensitive (#22856)
  • Added missing PostgreSQL operator for array overlap (#22903)

Fixed

Fixed

Changed

  • Accept collection of keys on Collection::only() (#22804)

Fixed

Added

  • Added Model::qualifyColumn() method (#22577)
  • Added support for the author_* fields to SlackAttachment (#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() in Collection::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 for optional() helper (#22699)
  • Make sure getRememberToken() returns a string (#22724)
  • Updated Vue preset version (#22732)
  • Accept Arrayable items in Collection::find() (#22787)

Fixed

  • Close database connection when using RefreshDatabase trait (#22569)
  • Send status code 500 when using dd() (#22581)
  • Fixed parameter usage in RedirectController (#22657)
  • Added __set_state() method to Support/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

  • Added AnonymousNotifiable::notifyNow() method (#22530)
  • Added EventFake::assertDispatchedTimes() method (#22528)

Changed

  • Check for --no-interaction flag on command calls (#22515, ba5e31d)

Fixed

  • Fix Validator not handling properly inline messages for size rules (#22518, 690d9fc)

Added

  • Allow HtmlString as line in MailMessage (#22473)
  • Allow chaining of the Request::merge() calls (#22479)

Changed

  • Reverted performance improvements of Model::getTable() (#22478)

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 on NotificationFake and return fake object from Notification::fake() (#22396)
  • Only add value as query binding if it isn't an Expression (#22451)

Fixed

  • Fixed database queue transactions wrapped in closures (#22394)
  • Fixed an issue with multiple dont-discover packages (#22443)
  • Fixed incorrect description type in Console/Parser (#22449)

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() in Collection::load() (#22363)
  • Respect schema config in PostgresBuilder (#22365, de561cb)

Fixed

  • Fixed SQS queue driver for PHP 7.2 (#22374)

Added

Changed

  • Made Relation::$morphMap public (e44596f)
  • Trim return value of ValidatesAttributes::shouldBlockPhpUpload() (90a8faf)

Fixed

  • Fixed an issue with queueable notifications (#22275)
  • Fixed NullSessionDriver upstream issues (#22314)
  • Move payload to the end of the insert array of a job (#22334)

Added

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() and download() 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 of TEXT 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 to false when force-deleting a model using SoftDeletes (#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 in whereHas() (#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

  • Add support for MultiSubnetFailover parameter to SqlServer (#22022)
  • Support custom URLs for S3 (#22037)
  • Added MakesHttpRequests::withMiddleware() method (#22060)

Changed

  • Display controller name in BadMethodCallException (#22005)
  • Unify Collection::dd() and Collection::dump() output (#22036)
  • Support event generation from multiple service providers (#22063)

Added

  • Added TestResponse::assertJsonMissingExact() (#21881)
  • Added assertValidationErrors() and assertJsonCount() to TestResponse (#21917)
  • Added allOnQueue() and allOnConnection() 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 to Illuminate\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

  • Excluding spatial_ref_sys table from migrate:fresh (#21778)
  • Fixed issue with SessionGuard setting the logged in user after firing the Authenticated event (#21790)
  • Fixed issue with Model::refresh() when model has a global scope (#21815)
  • Fixed scheduling a non-queuable job (#21820)

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)

Fixed

  • Allow @json options to be 0 (#21692)
  • Fixed "invalid argument" error in ServiceProvider::loadViewsFrom() (#21705)

No changes.

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 on ViewErrorBag (#21605)
  • Support higher order call of keyBy() (#21606)
  • Generate @else* directives for Blade::if() (#21611)
  • Made Response and JsonResponse macroable (#21669)

Changed

  • Escape HTML characters in @json directive (#21574)
  • Only accept strings in Session::flash() (#21576)
  • Use message from AuthenticationException in Handler::unauthenticated() (#21575)
  • Don't use global scope while touching parent timestamp (#21604)
  • Accept multiple middleware when defining middleware fluently (#21621)
  • Bind true as 1 while preparing an SQL statement (#21623)
  • Ensure config load order across multiple installations (#21634)
  • Pass previous exception to AccessDeniedHttpException and HttpException (#21645)
  • Unify Bootstrap preset (#21686, #21685)

Fixed

  • Reset table cell margins in mail theme (#21647)
  • Check for vendor views for each paths given in config/view.php (#21636)
  • Prevent negative offsets when paginating collection (#21658)
  • Flush all listeners of custom Eloquent events (#21688)

Added

  • Allow testing anonymous notifiables (#21379)
  • Add relation and model attributes on RelationNotFoundException (#21426)
  • Allow passing a callback to with() (#21445)
  • Added PotentiallyMissing interface to MissingValue class (be7dccc)
  • Accept $queue name on Schedule::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 into ConditionallyLoadsAttributes 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 is null (#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 of Arr::sort() optional (#21337)
  • Support setting custom REMOTE_ADDR in MakesHttpRequests (#21351)
  • Changed visibility of $output to public on console events (#21356)

Fixed

  • Don't compare remember token in user providers if it's null (srsly for real this time, pinky promise) (#21328, #21368)

Added

  • Added "software" as an uncountable word (#21324)

Fixed

  • Don't compare remember token if it's null (#21328)

Fixed

  • Fixed bug in EloquentUserProvider introduced in #21320 (#21323)

Added

  • Added Route::respondWithRoute($name) method (#21299, 66c5e46)
  • Added $strict parameter to TestResponse::assertJson() (#21301)

Changed

  • Added "firmware" as an uncountable word (#21306)
  • Allow MorphTo::associate() accept null (#21318)
  • Changed __() signature to match Translation::trans() (10c013c)

Fixed

  • Add missing driver parameter to doctrine connection (#21297)

Security

  • Perform constant-time token comparison in DatabaseUserProvider (#21320)

Changed

  • Perform stable sort in Collection::sortBy() (2nd attempt) (#21270)
  • Return empty string if database session key is expired (#21277)

Fixed

  • Fixed setting Model::UPDATED_AT in SoftDeletes (#21286)
  • Apply custom pivot model attribute casting on arrays (#21275)

Fixed

Fixed

  • Fix CacheClearCommand binding (#21256)

Changed

  • Clear real-time facades when running cache:clear (#21250, 1856601)

Fixed

  • Reverted stable sort support in Collection::sortBy() (#21255)

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 to make:factory (#21219)
  • Added ability to set a fallback (catch-all) route (#21234)

Changed

  • Support null on Model::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

  • Ignore SELECT bindings in prepareBindingsForUpdate() (#21173)
  • Fixed remember check in AuthenticatesUsers::attemptLogin() (#21221)
  • Added "hardware" as an uncountable word (#21236)

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 from Route::getAction() if $key is not found (#21083)
  • Restore non-static signature of Router::prepareResponse() (#21114, e1a1265)
  • Removed Model type hint from Model::isNot() (4d8f0a1)
  • Prefer Jsonable over Arrayable in JsonResponse::setData() (#21136)
  • Reset cc and bcc in Mailer::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 to PostgresGrammar (#21038)
  • Reset the index after a MissingValue while resolving resource (#21127)
  • Fixed getQualifiedParentKey() on BelongsToMany relationships (#21128)
  • Fixed parameters on Route::view() when using where() (#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 to Route::getAction() for simpler access (#20975)
  • Added @json blade directive (#21004)
  • Added rescue() helper (#21010, 74ecb34, c4d1c47)
  • Support commas in In and NotIn 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 from Validator::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 than 1 (#20997)
  • Only use reflection on classes in Kernel::load() (#20998)
  • Specify lower case column_name in MySqlGrammar::compileColumnListing() (#21037)
  • Fixed eager loading problem with BelongsToMany (#21044)

Removed

  • Remove unnecessary lcfirst() call in authorizeResource() (#21017)
  • Removed $listensFor from listener stubs (#21039)

Added

  • Added mov extension and MimeType::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 in Collection::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() and mapSpread() 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 to public (#20885)

Fixed

  • Fixed choice() on non-tty terminals (#20840)
  • Fixed Macroable calls on Optional (#20845, #20898)
  • Fixed dropAllTables() when using PDO::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 to make:model (a6ffd8b, #19985)
  • Added make:rule command (76853fd)
  • āš ļø Added runningInConsole() method Application 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 of fire() (#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 from Command::table() (#20120)
  • Support loading multiple paths in Kernel::load() (#20251, #20595)
  • Added CommandStarting and CommandFinished 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 on make: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() in ResetsPasswords (#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 to Gate contract (#19173)
  • āš ļø Implement iterable on Gate::check() and Gate::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 if HttpException (#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 and DateInterval in cache repository (#20034)
  • Added getStore() method to cache Repository 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() and unwrap() methods (#20055, #20068)
  • Added keys to partition(), eachSpread() and mapSpread callback (#20783, #20723)

Configuration

  • Added Config::getMany() method (#19770)

Controllers

  • āš ļø Added ControllerDispatcher (#20031)
  • āš ļø Removed Controller::missingMethod() (bf5d221)

Database

Eloquent ORM

  • Added API resources (#20710, too many follow-up commits)
  • āš ļø Indicate soft deleted models as existing (#17613)
  • āš ļø Added $localKey parameter to HasRelationships::belongsToMany() and BelongsToMany (#17903, 7c7c3bc)
  • āš ļø Added $parentKey parameter to belongsToMany(), BelongsToMany and MorphToMany (#17915, #18380)
  • āš ļø Renamed $parent property to $pivotParent in Pivot class (#17933, #18150)
  • āš ļø Don't add _count suffix to column name when using withCount() 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 in Model::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() and firstOrNew() (#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() and syncChanges() (#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 on BelongsToMany::create() to empty array (973bff4)
  • Add ability to set a custom pivot accessor (#20411)
  • āš ļø Call setConnection() in Model::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() in Encrypter (#18684)
  • Added Encrypter::generateKey() method (6623996)
  • Use json_last_error() in Encrypter (#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 code 413 from PostTooLargeException (#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

Filesystem

  • āš ļø Made Storage::files() work like Storage::allFiles() (#18874, 7073457)
  • āš ļø Fixed compatibility between FilesystemAdapter and the Filesystem interface (#19389)

Helpers

  • Added report() helper (2b67619)
  • Added throw_if() and throw_unless() helpers (18bb4df, #19166, #19255)
  • Added dispatch_now() helper (#18668, 61f2e7b)
  • Added $language parameter to str_slug() helper (#19011)
  • Added str_before() helper (#19940, #20049)
  • Added now() and today() helpers (3c888b6, #20716)
  • Added blank(), filled(), optional() and transform() 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 in mix() (#20603, bf0cb82)

Localization

  • āš ļø Moved LoaderInterface to contracts (#20460)
  • āš ļø Support loading JSON translation for packages (#20599, 573f85c)
  • Support language specific characters in Str (#18974, #19694)

Mail

  • Allow mailables to be rendered directly to views (d9a6dfa)
  • Allow for per-mailable theme configuration (b2c35ca)
  • āš ļø Removed $data and $callback parameters from Mailer and MailQueue
  • āš ļø Made Markdown a dependency of MailChannel (#19349)
  • āš ļø Upgraded to SwiftMailer 6 (#19356)
  • āš ļø Added to() and bcc() to Mailer contract (#19955)

Notifications

  • Added methods for Slack's thumb_url and unfurl_* 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 from Queue::createPayload() (#17948)
  • Made all getQueue() methods public (#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 and DateInterval in queue (#20102, 92e2aff)
  • āš ļø Use dispatch() instead of fire() (#20446)
  • Removed reserved_at index from jobs table stub (#20702)
  • Support job expiration (#20776, 1592b9b)

Redis

Requests

  • āš ļø Made Request::has() work like Collection::has() (#18715)
  • Added Request::filled() (#18715)
  • āš ļø Made Request::only() work like Collection::only() (#18695)
  • Aliased Request::exists() to Request::has() (183bf16)
  • Allow passing keys to Request::all() to behave like old Request::only() (#18754)
  • āš ļø Removed Request::intersect() (#18695)
  • Return request data from ValidatesRequests calls (#19033)
  • Added a validate() macro onto Request (#19063)
  • Added FormRequest::validated() method (#19112)
  • āš ļø Made request() helper and Request::__get() consistent (a6ff272)
  • Made Request::routeIs() work like Request()::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() and Router::currentRouteNamed() (#19267, bfc5321)
  • Added domain() setter/getter to Route (#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() and names() methods (#20531, #20529)
  • Handle HEAD requests in Router::view() (#20672)
  • Added ThrottleRequestsWithRedis middleware (#20761, 0a10f9a)

Responses

  • āš ļø Ensure Arrayable and Jsonable return a JsonResponse (#17875)
  • āš ļø Ensure Arrayable objects are also morphed by Response (#17868)
  • Added SameSite support to CookieJar (#18040, #18059, e69d722)
  • Accept HeaderBag in ResponseTrait::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 in Store::flash() (#18136)
  • āš ļø Store the user password hash when logging in (#19843)
  • āš ļø Throw UnauthorizedHttpException from failedBasicResponse (#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 to Illuminate\Support (#20119, #20206)
  • Support callable/invokable objects in Pipeline (#18264)
  • āš ļø Prevent access to protected properties using array access on Model and Fluent (#18403)
  • āš ļø Extend MessageBag interface from Arrayable and add getMessages() method (#19768, #20334)
  • Handle Arrayable items in MessageBag (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() and skip() (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 in InteractsWithExceptionHandling (#20000)
  • Added MailFake::assertSentTimes(), QueueFake::assertPushedTimes() and BusFake::assertDispatchedTimes() methods (#20485, e657f6e)
  • Added queue assertions to MailFake (#20454, #20701)
  • Added assertNothingSent() and assertSentTimes() methods to NotificationFake (#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 of DateTime (#20110)
  • āš ļø Made several method in ValidatesAttributes public (#20200)
  • āš ļø Added errors() method to Validator interface (#20337)
  • Extend Exists and Unique rule from DatabaseRule class (#20563)
  • Added whereIn() and whereNotIn() constraints to DatabaseRule (#20691, #20739, 52d28e3)
  • Added date_equals rule (#20646)

Views

  • āš ļø Camel case variables names passed to views (#18083)
  • Added pagination template for Semantic UI (#18463)
  • Allow easier ViewFactory overriding (#20205, 56f103c)
  • Added View::first() (#20695, f18318b)

Added

  • Added MP3 to Testing/MimeType::$mimes (#20745)

Changed

  • Mailables that defined a $delay property will honor it (#20717)

Fixed

  • Fixed route URLs building from artisan commands (#20788)

Fixed

  • Fixed breaking change in FactoryBuilder (#20727)

Added

  • Added Str::start() and str_start() helper (#20569)
  • Added orDoesntHave() and orWhereDoesntHave() to QueriesRelationships (#20685)
  • Added support for callables in model factory attributes (#20692)

Changed

  • Return the model instance from Model::refresh() (#20657)
  • Use self::$verbs in Router::any() (#20698)

Fixed

  • Fixed duplicate user model import in make:policy (#20645, 48f5f23)
  • Fixed PHP 7.2 incompatibility in Builder::mergeWheres() (#20635)
  • Fixed issue in RateLimiter (#20684)
  • Fixed success message after password reset (#20707)
  • Fail job only if it didn't fail already (#20654)

Added

  • Show error message if a reverted migration is not found (#20499, a895b1e)

Changed

  • Moved tap() method from Builder to BuildsQueries (#20384)
  • Made Blade or operator case-insensitive (#20425)
  • Support $amount = 0 in Arr::random() (#20439)
  • Reverted doctrine/inflector version change made in v5.4.31 (#20227)

Fixed

  • Fixed bug when using empty values in SQLiteGrammar::compileInsert() (#20424)
  • Fixed $boolean parameter being ignored in Builder::addArrayOfWheres() (#20553)
  • Fixed JoinClause::whereIn() when using a subquery (#20453)
  • Reset day parameter when using Y-m with date_format rule (#20566)

Added

  • Added FilesystemAdapter::path() method (#20395)

Changed

  • Allow Collection::random() to return 0 items (#20396, #20402)
  • Accept options on FilesystemAdapter::temporaryUrl() (#20394)
  • Sync withoutOverlapping method on Event and CallbackEvent (#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 to AuthMakeCommand (#20216)
  • Don't use asset() helper inside mix() (#20197)
  • Removed array type-hint in Builder::orWhereRaw() signature (#20234)
  • Added empty array default to $attributes on BelongsToMany::create() (#20321)
  • Prepare for PHP 7.2 (#20258, #20330, #20336, #20378)
  • Use unsignedTinyInteger() in jobs.stub (#20382)

Fixed

  • Make sure Model::getDates() returns unique columns (#20193)
  • Fixed pulled doctrine/inflector version (#20227)
  • Fixed issue with chunkById() when orderByRaw() is used (#20236)
  • Terminate user defined database connections after rollback during testing (#20340)

Fixed

  • Handle a non-existing key in ArrayStore (#20156)
  • Fixed bug @guest and @auth directives (#20166, b164e45)

Added

  • Added ManagesFrequencies::twiceMonthly() method (#19874)
  • Added RouteCollection::getRoutesByName() method (#19901)
  • Added $expiresAt parameter to CallbackEvent::withoutOverlapping() (#19861)
  • Support keeping old files when testing uploads (#19859)
  • Added --force option to make:mail, make:model and make: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 extends Arrayable (#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

  • 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

  • Added avg() and average() 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 / from public_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 in Http\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 Collection::diffAssoc() method (#19604)

Changed

  • Updated PHPUnit whitelist (#19609)

Fixed

  • Update timestamps on soft delete only when they are used (#19627)

Added

  • Added Event::nextRunDate() method (#19537, 09dd336)
  • Added null safe operator <=> to query builder operators list (#19539)
  • Added Macroable trait to RequestGuard (#19569)

Changed

  • Touch updated_at timestamp when soft deleting (#19538)
  • Accept argument list in Rule::in() and Rule::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 to stopWorkerIfLostConnection() (#19591)

Added

  • Added Macroable trait to FactoryBuilder (#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 in RedirectResponse::withErrors() (#19426)
  • Suppress error if calling Str::replaceFirst() with an empty search (#19427)
  • Removed the callable type hint for array_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 to Paginator (#19314)
  • Added Collection::concat() method (#19318, 0f5337f)
  • Added make() method to HasOneOrMany and MorphOneOrMany relations (#19307)
  • Added str_after() helper function (#19357)
  • Added Router::apiResource() method (#19347)

Changed

  • Move $sizeRules and $numericRules properties from FormatsMessages to Validator (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 to Pluralizer::$uncountable() (#19353)
  • Switched to using app()->getLocale() in app.stub (#19405)

Fixed

  • Fixed Container::makeWith() not using parameters when resolving interfaces (#19178)
  • Stop validating Memcached connection (#19192)
  • Fixed the position of bound() in Container::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 from callScope() if $query->wheres is null (#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's find() method (#19019)
  • Added SendsPasswordResetEmails::validateEmail() method (#19042)
  • Allow factory attributes to be factory instances themselves (#19055)
  • Implemented until() method on EventFake (#19062)
  • Added $encoding parameter to Str::length() (#19047, #19079)

Changed

  • Throw exception when invalid first argument is passed to cache() helper (d9459b2)
  • Use getAuthIdentifierName() in Authenticatable::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() in assertJsonStructure() (#19090)

Added

Fixed

  • Reverted queue prefix option #18860 (#18987)
  • Return null if key is not found from RedisStore:many() (#18984)

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 to AuthorizesRequests (#18916, #18964)
  • Added name to home route (#18942)

Changed

  • Return PendingDispatch for Kernel::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 on JsonResponse (#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 is null (#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

  • Fixed memory issue in Container (#18812)
  • Set database connection while retrieving models (#18769)

Added

  • Added assertSuccessful() and assertRedirect() to TestResponse (#18629)
  • Added assertSeeText() and assertDontSeeText() to TestResponse (#18690)
  • Added assertJsonMissing() to TestResponse (#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 on make:controller (#18606)
  • Added MessageSent event to Mailer (#18744, 6c5f3a4)

Changed

  • Don't trim leading slashes on local filesystem base URLs (acd66fe)
  • Accept variable on @empty() directive (#18738)
  • Added string validation rules to AuthenticatesUsers (#18746)

Fixed

  • 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() and decrement() update attributes (#18739, 1728a88)

Added

  • Added getManager() and setManager() 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 with migrate:reset (#18540)
  • Store SparkPost Transmission-ID in the header after sending message (#18594)

Changed

  • Check for Htmlable instead of HtmlString in Mailer::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 and down 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() in TestResponse::assertRedirect() (#18559)
  • Case parseIds() to array in InteractsWithPivotTable::sync() (#18547)
  • Preserve route parameter names (#18604)
  • Fixed several image validation issues (#17983)

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 returns false (#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(), and executeRaw() to PhpRedisConnection (#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 in MakeAuthCommand (#18215)
  • Added file_exists() check to Event::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 to bigIncrements() (#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 in orWhereHas() (#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() when null was passed (#18356)
  • Attempt to solve an issue with using required_* rules while the ConvertEmptyStringToNull 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)

Added

  • Added any() method to ViewErrorBag (#18176)
  • Added Storage and File fakes (#18178, #18180)

Changed

  • Made queue worker properties $shouldQuit and $paused public (e40c0e7)

Fixed

  • Proxy isset() checks on TestResponse (#18182)