2017-03-28 78 views
0

我在TYPO3 Extbase中創建了M:N關係。 使用以下代碼我已將限制添加到QueryBuilder。TYPO3 Extbase Querybuilder在約束的最後添加'AND 1 <> 1'

foreach ($selectedFeatures as $value) { 
      $constraints[] = $query->contains('features', $value); 
    } 
$query->matching(
       $query->logicalAnd(
         $constraints 
         ) 
       ); 

它工作正常,直到4特徵。在此之後,QueryBuilder在約束條件'AND 1 <> 1'的末尾添加。 這就是我沒有結果的原因。

有人知道這可能是什麼嗎? '$ selectedFeatures'中的每個項目都是來自'Feature'模型的對象。這是我檢查過,這是正確的。

回答

0

這發生在Typo3DbQueryParser當第二個操作數是null。因此,您必須找出原因並在何種情況下$value,即您的$selectedFeatures之一恰好是null

+0

感謝您的回答,但這不可能。我已經從日誌文件中的$ selectedFeatures中寫入每個項目以檢查值,並且沒有人爲空。另外我添加了一個if條件來檢查值!is_null($ value)。 – GoatMachine

+0

啊,你檢查了。查詢中是否存在其他約束條件? '$ query-> in()'也可以產生'1'> 1'。它必須是兩者中的一個,它是整個extbase中唯一出現的<>操作符。而且我們不需要grep for'<' . '>'',對嗎? – undko

+0

不,沒有更多的限制在這個查詢。我刪除了一個功能時會發生此問題。但是這個功能不再存在於整個項目中。在我刪除這個之前,查詢工作正常。 – GoatMachine