``Laravel 10.37 introduces new features such as storing batch metadata in DynamoDB, asserting multiple errors on a field, and more. Read the latest Laravel news and updates.
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.
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.',
],
]);
James Brooks contributed an engine() method when defining migration schemas:
// Previously
Schema::table('foo', function (Blueprint $table) {
$table->engine = 'InnoDB';
// ...
});
// Using the new engine() method
Schema::table('foo', function (Blueprint $table) {
$table->engine('InnoDB');
// ...
});
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.
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: