[Laravel] 5.7.17がリリースされました
laravel/frameworkのバージョン5.7.17がリリースされました。追加された機能について確認します。
Database\Query\Builder::insertUsing
メソッドが追加されました
データベースの内容をメモリに展開することなく、サブクエリから直接挿入できます。
$builder->from('table1')->insertUsing(
['foo'],
function (Builder $query) {
$query->select(['bar'])->from('table2')->where('foreign_id', '=', 5);
}
);
// insert into "table1" ("foo") select "bar" from "table2" where "foreign_id" = 5
Database\Query\Builder::havingBetween
メソッドが追加されました
SQLのHAVING
にBETWEEN
の条件が指定できます。
$builder->select('*')->from('users')->havingBetween('last_login_date', ['2018-11-16', '2018-12-16'])->orHavingRaw('user_foo < user_bar');
// select * from "users" having "last_login_date" between '2018-11-16' and '2018-12-16' or user_foo < user_bar
DetectsLostConnections
トレイトにエラー処理が追加されました
MariaDBへの接続が失われた場合のメッセージが追加されました。
Postgresの外部キーを追加する場合の検証をスキップするためのオプションが追加されました
PostgresSQLのテーブルに外部キーを追加するには、既存のデータを検証するときにテーブルに排他アクセスロックが必要です。
notValid()
メソッドを利用することで検証をスキップできます。
$blueprint->foreign('parent_id')->references('id')->on('parents')->onDelete('cascade')->deferrable()->notValid();
詳しい変更については以下を確認してください。