编程

Laravel 10.37 发布

381 2023-12-17 00:04:00

Laravel 团队发布了 v10.37,提供了多个新能力:在 DynamoDB 中存储批量 metadata,在一个字段中断言多个错误,等。

批量存储到 DynamoDB 中

Sebastien Armand 贡献了在 DynamoDB (而非关联数据库)中存储批量元信息。您可以使用 queue.php 配置文件中的以下配置将应用配置为使用 DynamoDB:

'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',
],

断言多个错误信息

Tim MacDonald 贡献了使用 assertInvalid() 方法断言一个字段中的错误列表:

// 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() 方法到 Blueprint

James Brooks 贡献了一个 engine() 用来定义迁移 schema:

// 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 贡献了 getIndexes()getForeignKeys 方法,用以获取给定表格 schema 中的索引和外键:

Schema::getIndexes();
Schema::getForeignKeys();

getIndexes() 放回一个带有多个键的数组,如 name、columns、type、 uniqueprimary,而 getForeignKeys() 方法返回外键数组,其键包括 name, columns, foreign_schema, foreign_table, foreign_columns, on_updateon_delete。

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