Заголовок довольно понятен, но я хотел бы иметь динамическое значение по умолчанию.
Идея заключается в том, чтобы получить наибольшее число из столбца в базе данных, а затем добавить его крезультат.Этот результат должен быть сохранен как значение по умолчанию.
Давайте возьмем, к примеру, этот код:
$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
после сохранения объекта.
Может ли кто-нибудь указать мне правильное направление?