如何在TCA中实现以下选择用例:
我在产品扩展中有不同的产品表(窗口,门,...)。我还有一个引用扩展,其中每个引用项应包含使用过的产品。我在参考TCA中配置了TCA选择。但是我无法将这些多个表的产品放到选择框中。是否可以在一个选择框中包含所有窗户和所有门项目?
'products' => Array (
'label' => 'Verwendete Produkte: ',
'config' => Array (
'type' => 'select',
'foreign_table' => 'tx_products_windows',
'foreign_table_where' => ' AND tx_products_windows.sys_language_uid IN (-1,0)',
'size' => 5,
'minitems' => 0,
'maxitems' => 99,
)
),
答案 0 :(得分:3)
不,在select
类型中不可能,至少没有记录。
无论如何,您可以使用internal_type
= db
来实现所需的group
类型 - (最好使用建议向导)
'products' => array(
'label' => 'Verwendete Produkte',
'l10n_mode' => 'exclude',
'config' => array(
'type' => 'group',
'internal_type' => 'db',
'allowed' => 'tx_products_windows,tx_products_doors',
'MM' => 'tx_products_products_mm',
'show_thumbs' => 1,
'size' => 5,
'minitems' => 0,
'maxitems' => 9999,
),
),
并使用包含表名字段的典型MM表:
CREATE TABLE tx_foo_bar_mm (
uid_local int(11) unsigned DEFAULT '0' NOT NULL,
uid_foreign int(11) unsigned DEFAULT '0' NOT NULL,
sorting int(11) unsigned DEFAULT '0' NOT NULL,
sorting_foreign int(11) unsigned DEFAULT '0' NOT NULL,
tablenames varchar(255) DEFAULT '' NOT NULL,
KEY uid_local (uid_local),
KEY uid_foreign (uid_foreign),
KEY tablenames (tablenames)
);
另一件事是,对于Extbase,您需要手动创建自定义getter和处理项 (只需找到它们并存储在数组中以保持顺序)。