TYPO3 TCA делает значение по умолчанию динамическим - PullRequest
1 голос
/ 18 июня 2019

Заголовок довольно понятен, но я хотел бы иметь динамическое значение по умолчанию.

Идея заключается в том, чтобы получить наибольшее число из столбца в базе данных, а затем добавить его крезультат.Этот результат должен быть сохранен как значение по умолчанию.

Давайте возьмем, к примеру, этот код:

$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 после сохранения объекта.

Может ли кто-нибудь указать мне правильное направление?

...