2017-01-19 2 views
0

私はextbase/fluidに小さなエクステンションを書きましたが、今はリポジトリに少し問題があります。TYPO3のsys_categoriesのクエリを書く方法

私の拡張機能では、分類のためにsystem_categoriesを使用している項目を作成することができます(すべてのニュース拡張機能に類似しています)。 ページXにカテゴリx、カテゴリYにすべてページYを含むすべてのアイテムを表示することです。

私はitemRepository.phpにクエリを書き込む必要がありますが、私は取得できませんそれはので、ここで、リポジトリの私のコードを作業:

public function findSearchForm($limit) 
{ 

    $query = $this->createQuery(); 

    $query->getQuerySettings()->setLanguageUid($GLOBALS["TSFE"]->tmpl->setup['config.']['sys_language_uid']); 
    $query->matching(
     $query->like('title','%'.$search.'%') 
    ); 

    # $query->setOrderings(array('title' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING)); 


    return $query->execute(); 
} 

私も、すべてのこの

$query->statement("SELECT * FROM sys_category_record_mm WHERE uid_local = '11'") 

答えて

2

まずのようなステートメントを使用して 『のようなquery->』の後にクエリを拡張しようとしました:レコードの分類をどのように有効にしましたか?バックエンドで正しく動作しますか?

TCAがカテゴリの用途に正しく設定されている場合、共通リポジトリメソッドを使用して結果をフィルタリングできます。しかし、ANDを使って条件をあなたの "タイトル" - 条件と組み合わせなければなりません。

はこのような何かを試してみてください:

public function findSearchForm($limit) 
{ 

    $query = $this->createQuery(); 
    $constraints = array(); 
    $yourCategory = 11; 

    // Your $search-variable seems to be undefined? 
    //$constraints[] = $query->like('title','%'.$search.'%'); 
    $constraints[] = $query->contains('categories', $yourCategory); 

    $query->matching(
     $query->logicalAnd($constraints) 
    ); 

    // I think you dont need this... 
    $query->getQuerySettings()->setLanguageUid($GLOBALS["TSFE"]->tmpl->setup['config.']['sys_language_uid']); 

    return $query->execute(); 

} 
+0

は、このソリューションを共有していただきありがとうございます。私のために完璧に働いた! – bluebyte

関連する問題