2011-08-04 104 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();