2015-12-10 33 views
0

我有2個extbase模型:產品和類別。產品可以分配到多個類別,這是一個m:n關係。現在我需要找到至少有1篇文章的所有類別。這可能與一個extbase查詢?typo3 extbase:m:n關係,獲得關係計數> 0的項目

我嘗試這樣做:

$query = $this->createQuery(); 
$query->getQuerySettings()->setIgnoreEnableFields(true); 
$constraints[] = $query->greaterThan('products', 0); 
$query = $query->matching(
    $query->logicalAnd($constraints) 
); 
return $query->execute(); 

但這只是沒有返回類別可言。我可以用extbase查詢來做到這一點嗎?或者,如果不是,我還能如何實現這一目標?

回答

1

據我所知,默認的QueryBuilder方法是不可能的。我知道的唯一方法是使用statement()方法並編寫自己的SQL查詢。它可能看起來像這樣:

$sql = "select * from tx_myextension_domain_model_category cats 
      join tx_myextension_category_product_mm rel on cats.uid = rel.uid_local 
      join tx_myextension_domain_model_product p on rel.uid_foreign = p.uid 
      where p.deleted = 0 and cats.deleted = 0 group by cats.uid"; 

$query = $this->createQuery(); 
$query->statement()->execute(); 
return $query->execute(); 
+0

非常感謝。有沒有辦法將此結果轉換爲正常的extbase查詢將返回的內容?實體或任何它被稱爲typo3 ...? – Chi