TYPO3如何向TCA添加虚拟列?

时间:2018-01-09 17:02:06

标签: php typo3

如何将虚拟列添加到TCA(TYPO3 8)?我在1:n表中有数据,我想在后端显示当前元素的数据计数。 我需要这样的东西:

$fields = [
    'counts7d' => [
        'exclude' => false,
        'label' => 'last 7 days',
        'config' => [
            'type' => 'none',
            'procFunc' => '\Namespace\MyClass->MyMethod',
            'readOnly' => true,
            'params' => [
                'period => '7d'
            ]
        ]
    ],
    'counts30d' => [
        'exclude' => false,
        'label' => 'last 30 days',
        'config' => [
            'type' => 'none',
            'procFunc' => '\Namespace\MyClass->MyMethod',
            'readOnly' => true,
            'params' => [
                'period => '30d'
            ]
        ]
    ],
];



pseudo function:
public function myMethod($element, $params){

$sql = "SELECT count(*) FROM TABLE WHERE pid=$element[uid] and date > $params[period]";

return sql_count…

}

该字段仅应为后端用户提供信息。

有没有人有想法?

由于 奥利弗

2 个答案:

答案 0 :(得分:1)

TCA字段类型user正是您所寻找的:

'counts7d' => [
    'exclude' => false,
    'label' => 'last 7 days',
    'config' => [
        'type' => 'user',
        'userFunc' => \Namespace\MyClass::class . '->MyMethod',
        'parameters' => [
            'period => '7d',
        ],
    ],
],

答案 1 :(得分:0)

TCA字段类型none正是您要寻找的。类型none是唯一不需要不一定需要数据库字段的类型。要进行操作,您可以使用 userFunc ,它允许您使用自定义php函数。