Где метод не работает в Doctrine Query Builder? - PullRequest
2 голосов
/ 10 июля 2011

У меня есть базовый запрос ff.Запрос работает без вызова метода WHERE.

$qb->select(array('m', 'c'))
           ->from('models\Book', 'm')
           ->leftJoin('m.Chapters', 'c')
           ->where('m.Slug=?', $slug)
           ->orderBy('c.CreateDate', 'DESC');

Но после того, как я вызову его с помощью метода WHERE в Doctrine.Фф.появляется «сложная для понимания ошибка»:

Uncaught exception 'Doctrine\ORM\Query\QueryException' with message 'Invalid parameter format, ? given, but :<name> or ?<num> expected.' 

Какое решение этой проблемы может быть?

Ответы [ 2 ]

5 голосов
/ 13 июля 2011

Я думаю, что сообщение самоочевидно.

С Doctrine2 вы можете использовать либо:

    $qb->where('m.Slug=:slug')
       ->setParameter('slug', $slug);

либо:

    $qb->where('m.Slug=?1')
       ->setParameter(1, $slug);
0 голосов
/ 30 мая 2012

La solucion es:

$qb->where('m.Slug= :slug')
       ->setParameter('slug', $slug);

el espacio entre el = y:, osea: m.Slug= :slug хорошо, m.Slug=:slug плохо

...