[Laravel] 5.8.27がリリースされました
laravel/frameworkのバージョン5.8.27がリリースされました。追加された機能について確認します。
mix()
ヘルパーでアセットのURLが変更できるようになりました (#28952)
以前のアップデートでapp.asset_url
を指定することでCDNを利用したファイルの配信が可能になりましたが、同様にLaravel Mix
でビルドしたファイルについてもCDN等からの配信が可能になりました。
有効にする場合はconfig/app.php
にてmix_url
キーでURLを指定します。
RedisManager::setDriver()
メソッドが追加されました (#28985)
プログラムの実行中にredis
のドライバーを変更する必要がある場合にこのメソッドを利用できます。
MorphTo
リレーションを操作可能なwhereHasMorph()
メソッドが追加されました (#28928)
MorphTo
関係にあるモデルに対してもwhereHasMorph()
を利用して追加のクエリを発行できるようになりました。
今までは関連するデータに対して追加のクエリを発行するwhereHas()
はMorphTo
リレーションについては利用できませんでしたが、この問題が解消されました。
対象となるモデルを引数に与え、コールバックを利用してクエリを発行できます。
Relation::morphMap(['posts' => Post::class]);
Comment::whereHasMorph('commentable', [Post::class, Video::class], function ($query) {
$query->where('title', 'foo');
})->get();
また、それぞれのモデルに対して別の処理を行いたい場合には以下のように使用します。
Relation::morphMap(['posts' => Post::class]);
Comment::whereHasMorph('commentable', [Post::class, Video::class], function ($query, $type) {
if ($type === Post::class) {
$query->where('title', 'foo');
}
if ($type === Video::class) {
$query->where('title', 'bar');
}
})->get();
詳しい変更については以下を確認してください。