Как мне найти объекты в Доктрине? DQL или найти () - PullRequest
1 голос
/ 24 июля 2010

Интересно, как правильно найти объекты из базы данных?

я знаю, что есть

$em->find()
$em->createQuery()

я думаю, createQuery будет больше похоже на подготовленные заявления, а значит, более безопасным?

как установить именованные параметры в DQL?

$em->createQuery('select u from \Entities\Users u WHERE u.name = :name');

Ответы [ 2 ]

2 голосов
/ 24 июля 2010

Я думаю, что нашел ответ здесь

$query = $em->createQuery('SELECT COUNT(a.id) FROM CmsUser u LEFT JOIN u.articles a WHERE u.username = ?1 GROUP BY u.id');
$query->setParameter(1, 'jwage');
$numArticles = $query->getResult(Query::HYDRATE_SINGLE_SCALAR);

setParameter()

Интересно, а если find() экранирует значения?

0 голосов
/ 24 июля 2010

С 1.X DQL это было

Doctrine_Query::create()->from("Model m")->addWhere("m.field = ?", $value);

Нечто подобное должно быть доступно в DQL 2.X

...