标题是不言自明的,但我想要的是一个动态的默认值。
它背后的想法是从数据库中的列中获取最大的数字,然后将结果添加到结果中。此结果应保存为默认值。
让我们以这段代码为例:
$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
但我不知道如何将值传递给 coorisponding TCA 字段。DebuggerUtility
另外,当我使用processDatamap_afterAllOperations
保存对象后使用时得到的结果时,我的后端没有得到任何结果。
有人可以指出我正确的方向吗?