2011-08-04 83 views
2

我使用这个在我doctrine2查询,但它不会工作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%' 

但有错误在我的查询中,我认为

回答

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%') 

您还可以看到在我上面贴的链接其他一些例子。

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

+0

它的工作原理!谢谢 – JhovaniC

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