学说:QueryBuilder 与 createQuery? [英] doctrine: QueryBuilder vs createQuery?

查看:24
本文介绍了学说:QueryBuilder 与 createQuery?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 Doctrine 中,您可以通过两种方式创建 DQL:

In Doctrine you can create DQL in 2 ways:

EntityManager::createQuery:

$query = $em->createQuery('SELECT u FROM MyProjectModelUser u WHERE u.id = ?1');

查询构建器:

$qb->add('select', 'u')
   ->add('from', 'User u')
   ->add('where', 'u.id = ?1')
   ->add('orderBy', 'u.name ASC');

我想知道有什么区别,我应该使用哪个?

I wonder what the difference is and which should I use?

推荐答案

  1. DQL 更易于阅读,因为它与 SQL 非常相似.如果您不需要根据一组参数更改查询,这可能是最佳选择.

  1. DQL is easier to read as it is very similar to SQL. If you don't need to change the query depending on a set of parameters this is probably the best choice.

Query Builder 是一个用于构建查询的 api,因此如果您需要动态构建查询(例如迭代一组参数或过滤器),它会更容易.您不需要执行任何字符串操作来构建您的查询,例如连接、拆分或其他任何操作.

Query Builder is an api to construct queries, so it's easier if you need to build a query dynamically like iterating over a set of parameters or filters. You don't need to do any string operations to build your query like join, split or whatever.

这篇关于学说:QueryBuilder 与 createQuery?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆