3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

doctrineのQueryBuilderが自分的にうれしい点を考えてみた

Last updated at Posted at 2019-12-09

doctrineのQueryBuilderを使用すると
sqlを直接書くのと比べて、自分的に何がうれしいのかを考えてみました。

doctrineしか使用したことがないので、他でも同じかもしれません。

#QueryBuilderでうれしいこと

少し違ったものを作るのが簡単です

作成済みのものを使用して、少し違ったものを作るのが便利です。

例えば、where条件などは共通のままにしたいが、取得する値は変えたい場合に便利です。

sqlの場合


select name from customer where id = 1;

上記をそのまま利用して、下記を作るのはどうしようかと思います。
文字の置換などでしょうか。。。


select company from customer where id = 1;

QueryBuilderの場合

$qb
  ->select('c.name')
  ->where('c.id = 1');

上記の$qbを利用して、下記のようにselect()でselect定義を上書きすれば完成です。
where条件もそのまま残ります。

$qb
  ->select('c.company');

順番がめちゃくちゃでも良い

sql要素の順番がめちゃくちゃでも定義できるので、コードの書きやすさに合わせられます。

例えば、where条件だけを先に設定しておいて、

$qb
  ->where('c.id = 1')
  ->andWhere()
  ...

あとでselectを追加したりできます。

$qb
  ->select('c.name')
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?