TYPO3 realation,新条目“选择”所有条目

时间:2013-12-31 13:39:48

标签: typo3 extbase

我有一个extbase扩展,我有一个模型A 与另一个模型B 的关系。模型B有很多条目,所以我不想通过点击它来分配每个值。如果我有可能以某种方式选择所有条目,那将是很好的。

我尝试在页面设置中执行此操作“Usergroup Accsess Rights”区域(http://docs.typo3.org/typo3cms/TCAReference/Reference/Columns/Select/Index.html#columns-select-examples-multiple)。要具有混合值(静态和动态),该字段必须是CSV字段。我使用了itemsProcFunc,其中我构建了我的数组并将静态值放入。“所有条目”条目的值为-1。

模型A的后退形式

 Field of modal A           Model B values
 _______________________    _______________________
|All Entries            |  | All Entries           |
|                       |  |-----------------------|
|                       |  | First                 |
|                       |  | Second                |
|                       |  | Third                 |
|                       |  | Fourth                |
|                       |  | ...                   |
|_______________________|  |_______________________|

模型B关于模型B关系领域的TCA

$TCA['tx_myext_domain_model_promotion']['columns']['relToB'] = array(
'exclude' => 0,
'label' => relToB,
'config' => array(
    'type' => 'select',
    'foreign_table' => 'tx_myext_domain_model_modelB',
    'size' => 10,
    'autoSizeMax' => 30,
    'maxitems' => 9999,
    'multiple' => 0,
    'itemsProcFunc' => 'myFunc',
    'exclusiveKeys' => '-1',
),
);

到目前为止一切顺利,现在正在运行,我在我的数据库中获得了所选的“所有条目”值。但现在的问题是,extbase属性映射功能已被破坏,我必须在我使用此字段的任何地方编写手动SQL。

您如何解决这个问题?还有其他方法可以解决“选择所有条目”用例吗?

1 个答案:

答案 0 :(得分:0)

我个人赞成真正的MM关系,而不是被认为是坏风格的逗号分隔列表。

您可以选择以下方法:

  • 在您的TCA中添加一个复选框,例如“使用所有条目”。然后使用TCEmain(4.x)/ DataHandler(6.x)挂钩将所有条目分配给模型A(如果选中此复选框)。取消选中后,删除所有这些内容。
  • 使用TCA定义中的itemsProcFunc创建一个与select相同的字段类型,但添加了一个“select all entries”按钮,用于按JavaScript添加所有条目。

如果您需要有关如何操作的其他信息,请评论答案,我可以详细说明。