TYPO3 9 Ошибка приведения типа LTS в поле времени mysql для ввода типа TCA / dbType экономия времени пустое поле - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь получить ввод времени в TYPO3 9 LTS, работающем вместе с MySQL 5.7.24.

В ext_tables.sql поле определяется следующим образом:

some_field time default NULL

В TCA поле определяется следующим образом:

  'some_field' => [
    'exclude' => 1,
    'label' => 'Some field',
    'config' => [
      'type' => 'input',
      'dbType' => 'time',
      'eval' => 'time',
    ],
  ],

При сохранении записи в бэкэнде без ввода времени (что должно быть возможно) я получаю сообщение об ошибке:

These fields of record 1 in table "some_table" have not been saved correctly: some_field! The values might have changed due to type casting of the database.

При просмотре записи базы данных some_field поле получает значение 00:00:00 (хотя по умолчанию БД NULL).

При выборе времени запись может быть сохранена и открыта без ошибок.

Это ошибка в TYPO3 или как я могу исправить это поведение?

1 Ответ

0 голосов
/ 10 июля 2019

Это означает, что вы указали неверный тип для значения в ext_tables.sql. Кроме того, TYPO3 v9 имеет renderTypes. Попробуйте что-то вроде этого:

ext_tables.sql

begin int(11) DEFAULT '0' NOT NULL

TCA

'begin' => [
   'exclude' => true,
   'label' => 'LLL:EXT:your_ext/Resources/Private/Language/locallang_db.xlf:tx_yourext_domain_model_modelname.begin',
   'config' => [
        'type' => 'input',
        'renderType' => 'inputDateTime',
         'size' => 10,
         'eval' => 'datetime',
         'default' => time()
     ],
],

Дополнительная информация!

Если вы хотите отобразить время в FrontEnd, вы можете использовать что-то подобное

<f:format.date>{dateObject.begin}</f:format.date>

Если вы хотите изменить внешний вид, вы также можете использовать атрибут format :

<f:format.date format="%d. %B %Y">{dateObject.begin}</f:format.date>

Подробнее об этом здесь: TYPO3 Формат даты

...