2017-06-21 12 views
0

私は現在、単純なカスタムTYPO3拡張の中でm:mの関係で苦労しています。TYPO3 Extbase m:TCA内のm関係

フィルタには複数のフィルタと約10種類のカテゴリが関連しています。関係は、フィルタ内で選択されたカテゴリで構成されています

Filter-Category-Relation

、約150のフィルタおよびすべてのカテゴリがあり、製品にそれらを割り当てるときに、すべてのフィルタを表示しだけであるこれらのフィルタを表示する必要がありますそのカテゴリに関連付けられています。

Filters

私はこれについてのドキュメントを見つけることができませんでしたが、私の現在のTCAの設定は次のようになります。

'filter_bauwerkszustand' => array(
     'exclude' => 0, 
     'label' => 'Bauwerkszustand', 
     'config' => array(
      'type' => 'select', 
      'renderType' => 'selectMultipleSideBySide', 
      'foreign_table' => 'tx_produkte_domain_model_filter', 
      'foreign_table_where' => ' AND tx_produkte_domain_model_filter.filterkategorie = 1 AND tx_produkte_domain_model_filter.sys_language_uid=###REC_FIELD_sys_language_uid### ORDER BY tx_produkte_domain_model_filter.titel ASC', 
      'MM' => 'tx_produkte_filter_filterkategorie_mm', 
      'size' => 10, 
      'autoSizeMax' => 10, 
      'maxitems' => 9999, 
      'multiple' => 0, 
     ), 
    ), 
+0

私は少し混乱しています。あなたの質問は何ですか? –

+0

@カミヤンTCAを正しく編集して、カテゴリの正しいフィルタのみを表示する方法。現在、バックエンドのすべてのフィルタが選択されています。 – Andreas

+0

これらをすべて同じテーブルに保存する理由は何ですか?別々のエンティティを扱っている場合は、それらをすべてフィルタリングする代わりに、3つのテーブル、bauwerkszustand、eigenschaftenおよびzielに分割する必要があります。それにもかかわらず、テーブル行の違いをどうにかして反映させ、それに合わせて "foreign_table_where"節を拡張する必要があります。 – j4k3

答えて

0

その場合は、問題のthats MM-関係:acutallyフィルタのdoesnt中関係columカテゴリを保持し、関係の数だけを保持します。実際のリレーションはMMテーブルに反映されます。バックエンドはそうのように、最初のMM-テーブルへ、そしてそこから実際のカテゴリに、JOIN sのSELECT文でカテゴリが組み込まれています

tx_produkte_domain_model_filter.uid = 
tx_produkte_filter_filterkategorie_mm.uid_local 

tx_produkte_filter_filterkategorie_mm.uid_foreign = 
tx_produkte_domain_model_filterkategorie.uid 

tx_produkte_filter_filterkategorie_mm.uid_foreign = 1とクエリでtx_produkte_domain_model_filter.filterkategorie = 1一部をrelacing試してみてください。

+0

残念ながら、「where句」に「未知の列 'tx_produkte_filter_filterkategorie_mm.uid_foreign」というエラーがスローされます。SQL-Fehlerには、次のようなエラーが表示されます。TCAとデータバンクのヒントをスキップします。 Datenbank-Vergleichdurchzuführen。 " – Andreas

+0

くそー、それは残念です。私は、MMテーブルがクエリで結合されると確信していました。 TCAの設定からビルドされたクエリをデバッグする方法がないことが分かっているので、私は思っています。まあ。このブログ記事で説明されているように、Selectboxオプションを収集するユーザー関数を作成し、独自のクエリを定義するオプションがあります。 http://blog.systemfehler.net/typo3-tca-feld-mit-userfunc-ベンツェン/ – j4k3

関連する問題