The Laravel team released v6.13.0 this week with the ability to format implicit validation attributes and a new ensureDirectoryExists() filesystem method.
Here’s a look at some of the highlight new features:
Allow Formatting Implicit Validation Attributes
Mohamed Said contributed a PR that allows a validator to configure a custom formatter for an implicit attribute:
// Instead of "0.age must be an integer"
// A formatter could do: "age at line 1 must be an integer"
validator(
[['age' => 'thirty']],
['*.age' => 'integer']
)->setImplicitAttributesFormatter(function ($attribute) {
[$line, $attribute] = explode('.', $attribute);
return sprintf('%s at line %d', $attribute, $line + 1);
})->validate();
Filesystem ensureDirectoryExists Method
Taylor Otwell contributed the ensureDirectoryExists()
method for the filesystem class:
Filesystem::ensureDirectoryExists($path, $mode = 0755, $recursive = true);
This method will create the directory if it doesn’t already exist.
Storage URL for the FTP Driver
Melek REBAI contributed support for Storage::url()
to work with the FTP driver.
You can see the full list of new features and updates below and the whole diff between 6.12.0 and 6.13.0 on GitHub. The full release notes for Laravel 6.0 are available in the GitHub v6 changelog:
v6.13.0
Added
- Added
--api
option to themake: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)