[Laravel] 5.8.22がリリースされました
laravel/frameworkのバージョン5.8.22がリリースされました。追加された機能について確認します。
Blade
テンプレートに@componentFirst
ディレクティブが追加されました (#28783)
Blade
のディレクティブには@component
と@include
という似たような機能を持つディレクティブがあります。
@components
は@slots
を通してデータを渡すことができます@component
は渡された変数にのみアクセスしますが、@include
は現在定義されているすべての変数にアクセスします。
これらのディレクティブは非常に似ていますが、@include
には便利なバリエーションがあります。
@includeWhen
@includeIf
@includeFirst
@componentFirst
を利用することで、@component
の利点を活かしつつ、上記のようなバリエーションを利用できるようになりました。
<div>
@componentFirst(['missing/file', 'found/file'])
@slot('title', 'Test Component')
@endcomponent
</div>
Morph
リレーション関係にあるモデルのネスとしたリレーションをEager Loadingで取得可能になりました (#28647, d72e3cd)
Comment
は、Video
またはPost
とMorph関係にありますPost
はUser
と関係があります
Comment::query()
->with(['commentable' => function (MorphTo $morphTo) {
$morphTo->morphWith(Post::class, ['user']);
}])
->get();
Pluralizer
クラスにRelated
とRecommended
が追加されました (#28749)
Str::containsAll()
メソッドが追加されました (#28806)
文字列が引数で与えられた配列の値を全て含んでいることを確認できます。
$this->assertTrue(Str::containsAll('taylor otwell', ['taylor', 'otwell']));
$this->assertTrue(Str::containsAll('taylor otwell', 'taylor'));
$this->assertTrue(Str::containsAll('taylor otwell', ['taylor']));
$this->assertFalse(Str::containsAll('taylor otwell', 'xxx'));
$this->assertFalse(Str::containsAll('taylor otwell', ['taylor', 'xxx']));
メンテナンスモードコマンドのエラー処理が追加されました (#28765, 9e20849)
Laravelでメンテナンスモードの利用にはphp artisan down
コマンドを利用します。
このコマンド実行時にはstorage/framework/down
にファイルが作成され、このファイルが存在する場合にはメンテナンスモードとして処理されます。
しかし、権限のないユーザーがこのコマンドを実行した際にはファイルが作成されず、エラーメッセージも出力されませんでした。
こういった場合にコンソール上にエラーメッセージが出力されるようになりました。
TestResponse::assertJsonValidationErrors()
メソッド利用時のエラーメッセージが指定可能になりました (#28787)
認可機能でリソースのindex
に対してviewAny()
メソッドで許可可能になりました (#28820)
詳しい変更については以下を確認してください。