簡體   English   中英

原則1.2-在用戶搜索輸入后構建查詢

[英]Doctrine 1.2 - Building a query after user search input

我具有下表(文章,類別,關系)的結構:

articles
 >id
 >title
 >body

cats
 >id
 >title

cat_article_relations
 >id
 >cat_id
 >article_id

現在,我創建了一個頁面,用戶可以在其中選擇一個或多個類別(使用復選框)。 提交搜索表單后,我有一個數組,其中所有類別ID均已選中。 現在,當我嘗試加載具有所有選定類別的所有文章時,就會出現我的問題。

使用時:

...    
->leftJoin('a.Cat_article_relations rl')
->andWhere('rl.cat_id = ?', $sg[0])
...

之所以有效,是因為我只尋找一個包含的類別。 一旦我添加了多個“-> andWhere”,並循環遍歷了我所有的類別ID(在我得到的數組中),它將不再起作用。 我檢查了Doctrine 1.2文檔是否有任何解決方案,但找不到任何東西。 “-> whereIn”和類似的沒有給我想要的結果。

我只想獲取所有與所有選定類別相關的文章。 也許有人可以給我一個提示:)

信息:如果您有一個用於純MySQL查詢的解決方案,那對我也將有很大幫助。 它不必用Doctrine編寫。

謝謝

我不確定我是否了解這種關系,但是應將其更改為:

->leftJoin('a.Cat_article_relations rl')
->andWhere('rl.cat_id = ?', $sg[0])

->leftJoin('a.Cat_article_relations rl WITH rl.cat_id=?', $sg[0])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM