Doctrine2查询构建器问题与like

时间:2011-08-04 19:50:04

标签: sql doctrine-orm

我在我的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 个答案:

答案 0 :(得分:14)

http://www.doctrine-project.org/docs/orm/2.0/en/reference/query-builder.html中定义的Doctrine 2中的QueryBuilder语法与您在查询中使用的语法略有不同。

您可以尝试此查询:

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

您还可以在我上面发布的链接中看到其他一些示例。

编辑:我在下面的“助手方法”页面中看到,您的语法也应该有效。试试我上面写的查询。

答案 1 :(得分:2)

$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();