TYPO3 TCA使“默认”值变为动态

时间:2019-06-18 09:50:26

标签: typo3 typo3-8.x typo3-tca

标题是不言自明的,但是我想要的是动态默认值。

其背后的想法是从数据库中的列中获取最大的数字,然后将其添加到结果中。此结果应另存为默认值。

让我们以下面的代码为例:

$GLOBALS['TCA'][$modelName]['columns']['autojobnumber'] = array(
    'exclude' => true,
    'label' => 'LLL:EXT:path/To/The/LLL:tx_extension_domain_model_job_autojobnumber',
    'config' => [
        'type' => 'input',
        'size' => 10,
        'eval' => 'trim,int',
        'readOnly' =>1,
        'default' => $result,
    ]
);

SQL看起来像这样:

$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_extension_domain_model_job');
$getBiggestNumber = $queryBuilder
     ->select('autojobnumber')
     ->from('tx_extension_domain_model_job')
     ->groupBy('autojobnumber')
     ->orderBy('autojobnumber', 'DESC')
     ->setMaxResults(1)
     ->execute()
     ->fetchColumn(0);
$result = $getBiggestNumber + 1;

那我该怎么做“清洁”?

我考虑过processCmdmap_preProcess,但是我不知道如何将值传递给相应的TCA字段。另外,当我使用DebuggerUtility时,在后端上没有任何结果,就像保存对象后使用processDatamap_afterAllOperations时得到的结果一样。

有人可以指出我正确的方向吗?

0 个答案:

没有答案