Laravel 10.37 Released
Last updated on by Paul Redmond
This week, the Laravel team released v10.37 with the ability to store batch metadata in DynamoDB, assert multiple errors on a field, and more. Here is a bit more info about the new features introduced this week:
Storing batches in DynamoDB
Sebastien Armand contributed storing batch meta information in DynamoDB instead of a relational database. You can configure your application to use DynamoDB using the following config in your queue.php
config file:
'batching' => [ 'driver' => env('QUEUE_FAILED_DRIVER', 'dynamodb'), 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), 'table' => 'job_batches',],
See the documentation for complete setup details, and Pull Request #49169 for implementation details.
Assert multiple error messages
Tim MacDonald contributed the ability to assert a list of errors on a field using the assertInvalid()
method:
// Before, separate assertion calls are required$response->assertInvalid(['email' => 'The email field must be a string.']);$response->assertInvalid(['email' => 'The email field must be at least 5 characters.']); // As of Laravel 10.37 you can now do:$response->assertInvalid([ 'email' => [ 'The email field must be a string.', 'The email field must be at least 5 characters.', ],]);
engine()
method to Blueprint
Add James Brooks contributed an engine()
method when defining migration schemas:
// PreviouslySchema::table('foo', function (Blueprint $table) { $table->engine = 'InnoDB'; // ...}); // Using the new engine() methodSchema::table('foo', function (Blueprint $table) { $table->engine('InnoDB'); // ...});
Get the indexes and foreign keys of a table
Hafez Divandari contributed a getIndexes()
and getForeignKeys
methods to get the indexes and foreign keys of a given table schema.
Schema::getIndexes();Schema::getForeignKeys();
The getIndexes()
method returns an array with various keys, such as name
, columns
, type
, unique
, and primary
, and the getForeignKeys()
method returns an array for each foreign key with name
, columns
, foreign_schema
, foreign_table
, foreign_columns
, on_update
, and on_delete
.
See Pull Request #49204 and Pull Request #49264 for more implementation details and examples.
Release notes
You can see the complete list of new features and updates below and the diff between 10.35.0 and 10.37.0 on GitHub. The following release notes are directly from the changelog:
v10.37.0
- [10.x] Add
engine
method toBlueprint
by @jbrooksuk in https://github.com/laravel/framework/pull/49250 - [10.x] Use translator from validator in
Can
andEnum
rules by @fancyweb in https://github.com/laravel/framework/pull/49251 - [10.x] Get indexes of a table by @hafezdivandari in https://github.com/laravel/framework/pull/49204
- [10.x] Filesystem : can lock file on append of content by @StephaneBour in https://github.com/laravel/framework/pull/49262
- [10.x] Test Improvements by @crynobone in https://github.com/laravel/framework/pull/49266
- [10.x] Fixes generating facades documentation shouldn't be affected by
php-psr
extension by @crynobone in https://github.com/laravel/framework/pull/49268 - [10.x] Fixes
AboutCommand::format()
docblock by @crynobone in https://github.com/laravel/framework/pull/49274 - [10.x]
Route::getController()
should returnnull
when the accessing closure based route by @crynobone in https://github.com/laravel/framework/pull/49269 - [10.x] Add "noActionOnUpdate" method in Illuminate/Database/Schema/ForeignKeyDefinition by @hrsa in https://github.com/laravel/framework/pull/49297
- [10.x] Fixing number helper for floating 0.0 by @mr-punyapal in https://github.com/laravel/framework/pull/49277
- [10.x] Allow checking if lock succesfully restored by @Joostb in https://github.com/laravel/framework/pull/49272
- [10.x] Enable DynamoDB as a backend for Job Batches by @khepin in https://github.com/laravel/framework/pull/49169
- [10.x] Removed deprecated and not used argument by @Muetze42 in https://github.com/laravel/framework/pull/49304
- [10.x] Add Conditionable to Batched and Chained jobs by @bretto36 in https://github.com/laravel/framework/pull/49310
- [10.x] Include partitioned tables on PostgreSQL when retrieving tables by @hafezdivandari in https://github.com/laravel/framework/pull/49326
- [10.x] Allow to pass
Arrayable
orStringble
in rulesIn
andNotIn
by @michaelnabil230 in https://github.com/laravel/framework/pull/49055 - [10.x] Display error message if json_encode() fails by @aimeos in https://github.com/laravel/framework/pull/48856
- [10.x] Allow error list per field by @timacdonald in https://github.com/laravel/framework/pull/49309
- [10.x] Get foreign keys of a table by @hafezdivandari in https://github.com/laravel/framework/pull/49264
- [10.x] PHPStan Improvements by @crynobone in https://github.com/laravel/framework/pull/49343
- [10.x] Handle missing translations: more robust handling of callback return value by @DeanWunder in https://github.com/laravel/framework/pull/49341