2011-05-30 25 views
1

在DIEM CMF標籤從查詢中排除的項目,我想這樣做,將排除基於標籤模型基於他們的Symfony /津貼和學說

迪姆文檔的一些文章,有條件的聲明給出的條件下查詢(http://diem-project.org/diem-5-1/doc/en/reference-book/list-widgets)

$query = $this->getListQuery('post') 
->addWhere('post.name LIKE ?', '%symfony%'); 

有沒有辦法根據標籤來排除一些帖吧具有?

謝謝

更新

這是我這似乎是更好的新的查詢(至少對我來說),但它仍然沒有工作。

public function executeList() 
{ 
    $query = $this->getListQuery(); 
    $query->leftJoin('DmTag'); 
    $query->addWhere('DmTag.name NOT LIKE ?', '%Fichets%'); 
    $this->articlePager = $this->getPager($query); 
    $this->articlePager->setOption('ajax', true); 
    } 

吳庭豔博客是根據吳庭豔教程做,我使用標準(開箱這麼說的)迪姆標籤插件。我沒有修改模型和表格的名稱。

+0

那麼有'不LIKE'? – Orbling 2011-05-30 14:16:19

+0

我這樣做:$ query = $ this-> getListQuery('Article') - > addWhere('DmTag.name NOT LIKE?','tagNameThatIwantToExclude');因爲我想排除那些有這個標籤但不起作用的文章... – Samuel 2011-05-30 14:35:00

+0

@Wiglaf:你把'%'通配符放進去了嗎? - 試試:''%tagNameThatIWantToExclude%'' – Orbling 2011-05-30 14:57:36

回答

1

這是工作查詢:

public function executeList() 
{ 
    $query = $this->getListQuery('a'); // add an alias 
    $query->leftJoin('a.Tags t'); // Join on the DmTag table 
    $query->addWhere('t.name NOT LIKE ?', '%Fichets%'); //Exclude the articles with a certain tag 
    $this->articlePager = $this->getPager($query); 
    $this->articlePager->setOption('ajax', true); 
    } 
+0

所以這是一個連接問題?在使用'NOT LIKE'之上? – Orbling 2011-05-31 15:14:55

+0

是的!我覺得有點笨,但終於有效。我花了一些時間,但很好:我得到了symfony/diem/doctrine的語法;) – Samuel 2011-05-31 15:17:33

+0

不應該擔心它。學說確實有點習慣! – Orbling 2011-05-31 15:27:42