Cập nhật Laravel 5.8.22

Laravel 5.8.22 phát hành ngày 12/06/2019 với một số tính năng mới như thêm blade directive @componentFirst, method morphWith mới giúp eager load relationships của morphed models.

Blade directive @componentFirst mới được thêm vào, với cách hoạt động tương tự như directive @includeFirst:

<div>
    @componentFirst(['missing/file', 'found/file'])
        @slot('title', 'Test Component')
    @endcomponent
</div>

Method withMorph mới được thêm vào giúp bạn eager load relation của morphed models, xem Pull Request #28647 này để hiểu rõ hơn về cách hoạt động của method này:

$comments = Comment::query()
    ->with(['commentable' => function (MorphTo $morphTo) {
        $morphTo->morphWith([Post::class => ['user']]);
    }])
    ->get();

Method Str::containsAll được thêm vào giúp kiểm tra xem chuỗi nhập vào có chứa tất cả các các giá trị trong một mảng không:

// true
Str::containsAll('taylor otwell', ['taylor', 'otwell']);

// false
Str::containsAll('taylor otwell', ['taylor', 'xxx']);

Dưới đây là tổng hợp những thay đổi trong phiên bản Laravel 5.8.22 này:

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)

GitHub: https://github.com/laravel/framework/releases/tag/v5.8.22