SQL

Laravel クエリスコープを使おう!🐱 Query Scope

Laravel

まずはSQLとQuery Builderの比較

中間テーブルとの結合のSQLを書いてみる

SQLで書いた場合

 

QueryBuilderで書いた場合

  • ->join() 内部結合
  • ->leftJoin() 左外部結合
  • ->mergeBindings($tb_section) サブクエリのバインドの値をマージ

行数が少なめになりました🐱
サブクエリ使っちゃってるのでムズいが。

// モデルでリレーションを定義してあげるともっと良いです。

Query Builderの何が嬉しいの?

 

クエリスコープを利用することで保守がしやすくなります

 

定義したクエリスコープは次のように利用できます

isNotDeleted(), isMyPlan(), isBurning()として利用しています。

スコープとして関数にすることでパッと見で抽象的にクエリの内容を理解しやすくなります🐱

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)