Параметры постановки задачи в доктрине 2 ORM - PullRequest
2 голосов
/ 03 марта 2011

У меня проблема с очень простым запросом в Doctrine 2 ORM.Я уверен, что следовал документам к письму, но это просто не сработает.У меня есть это:

$qb = $this->em->createQueryBuilder()
    ->select('p')
    ->from('Property', 'p')
    ->where('type = :type');
$properties = $qb->getQuery()->setParameters(array(
    'type' => 'house',
))->getResult();

И я получаю:

QueryException: [семантическая ошибка] строка 0, столбец 46 рядом с «тип =: тип»: ошибка: «тип»не определено.

Я также пробовал:

$properties = $qb->getQuery()->setParameters(array(
    ':type' => 'house',
))->getResult();

Без удачи.Я уверен, что это должно быть так просто, но я просто не могу понять, в чем дело.
Спасибо.

Ответы [ 2 ]

6 голосов
/ 03 марта 2011
->where('p.type = :type');

Вы всегда должны указывать владельца свойства - Property сущность в этом случае.

0 голосов
/ 03 марта 2011

Я всегда выполнял setParameter () в QueryBuilder, а не в запросе.

Попробуйте

$qb = $this->em->createQueryBuilder()
    ->select('p')
    ->from('Property', 'p')
    ->where('type = :type');

$qb->setParameters(array('type' => 'house'));

$properties = $qb->getQuery()->getResult();
...