教義,你可以通過兩種方式創建DQL:教條:QueryBuilder vs createQuery?
的EntityManager ::的createQuery:
$query = $em->createQuery('SELECT u FROM MyProject\Model\User u WHERE u.id = ?1');
的QueryBuilder:
$qb->add('select', 'u')
->add('from', 'User u')
->add('where', 'u.id = ?1')
->add('orderBy', 'u.name ASC');
我不知道有什麼區別,那些不應該我用?
但是在第一種情況下解析DQL字符串沒有開銷嗎?或者,構建器也會生成相同的DQL字符串? – 2014-12-03 08:34:21
是的,QueryBuilder爲你創建DQL字符串。之後,無論如何,DQL都會被解析。 – Dennis 2015-10-07 15:33:49