我在我的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%'
但我认为我的查询中有错误
答案 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();