😉
Laravel ::where() ではなく、::query() で書き始めるプチメリット
本題
Eloquent で、DB からデータを取得する場合、まず、::where() とかから書いたりしますが、::query() で書き始めることもできます。
ということで、::query() から書き始めた場合のちょっとしたメリットです。
(1) コード補完が効く
エディタは、VsCode に Intelephense を入れた環境です。
(Laravelは、Ver.8 と Ver.5.6 にて確認済)
画像で見ていただいた方が早いので、以下、画像です。
::query() から書き始めた場合
::where() から書き始めた場合
(2) 縦にメソッドを繋げた時、見やすくなるかも
// 最初の where() だけ仲間はずれ感がある(ずれていて見づらい)
$users = User::where('name', 'LIKE', 'taro%')
->where('email', 'LIKE', 'taro%')
->take(5)
->orderBy('id')
->get();
// 見やすくなった
$users = User::query()
->where('name', 'LIKE', 'taro%')
->where('email', 'LIKE', 'taro%')
->take(5)
->orderBy('id')
->get();
(おまけ)Custom Query Builders
話が長くなるので割愛しますが、Custom Query Builders と呼ばれたりするものを使う際、::query() で書き始めたりします。
詳しくは、下記のリンク等をご覧下さい。(英語サイト)
https://timacdonald.me/dedicated-eloquent-model-query-builders/
https://martinjoo.dev/build-your-own-laravel-query-builders
https://codecourse.com/courses/custom-laravel-query-builders
雑感
query()、何気にいい奴です。
Discussion
記事ありがとうございます!
こちら速度等に影響はないのでしょうか??
コメントありがとうございます。
どちらで書いても結局内部的には、すぐに同じ道を辿る事になりますので、速度的には影響ないと言えますね🚄
(1万回とか呼び出した時はどうかは分かりませんが…)