Doctrine2 Query Builder проблема с лайком - PullRequest
2 голосов
/ 04 августа 2011

Я использую это для в моем запросе doctrine2, но он не будет работать

  $obj_query_builder->select('p')
   ->from('General\Domain\Product', 'p')
   ->where('p.cach_all_stop_words LIKE ?', '%avond%');

Это должен быть запрос:

SELECT * FROM `product` WHERE `cach_all_stop_words` LIKE '%avond%'

Но в моем запросе есть ошибка, я думаю

Ответы [ 2 ]

14 голосов
/ 05 августа 2011

Синтаксис QueryBuilder в Doctrine 2, который определен в http://www.doctrine -project.org / docs / orm / 2.0 / en / reference / query-builder.html , немного отличается от того, который вы использовали в вашем запросе.

Можете ли вы попробовать этот запрос:

$obj_query_builder->add('select', 'p')
  ->add('from', 'General\Domain\Product p')
  ->add('where', 'p.cach_all_stop_words LIKE ?1')
  ->setParameter(1, '%avond%')

Вы также можете увидеть другие примеры в ссылке, которую я разместил выше.

РЕДАКТИРОВАТЬ: Я видел ниже на странице "Вспомогательные методы", что ваш синтаксис также должен работать. Попробуйте запрос, который я написал выше.

2 голосов
/ 31 августа 2013
$qb = $this->getEntityManager()->createQueryBuilder();
$qb -> select('p')
    ->from('General\Domain\Product' , 'p')
    ->where($qb->expr()->like('p.cach_all_stop_words', $qb->expr()->literal('%avond%')));

$query = $qb->getQuery();
...