エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【Laravel】複数クエリビルダのプレースホルダの変数を合体させる【603日目】

クエリビルダのプレースホルダ??

こちらを参照

www.nyamucoro.com

プレースホルダの変数を合体?

User::select('*')->where('id', '=', 3);
User::select('*')->where('name', '=', 'ringo');

このときの中身には、SQLだけでなく、プレースホルダに入れるための値を保存した配列があります。

SQLを合体するパターン

toSql()という関数は、SQLを吐き出すことを前の記事で説明しました。

複数のクエリビルダを合体させるときは・・・

SQLtoSql()で文字列結合

プレースホルダ→ ???

となります。

mergeBindings関数

プレースホルダにバインドする値は、mergeBindings()で出来ます。

しかし、引数に取ったものを、後にマージするだけなので、
合体するときは順番を気をつけないと、SQLが壊れてしまうのでご注意を。