TCA 类型输入的 mysql 时间字段上的 TYPO3 9 LTS 类型转换错误/dbType 时间节省空字段
TYPO3 9 LTS type casting error on mysql time field for TCA type input / dbType time saving empty field
我正在尝试在与 MySQL 5.7.24 一起工作的 TYPO3 9 LTS 中输入时间。
在 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 中的错误还是我该如何解决此问题?
这意味着您为 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()
],
],
补充信息!
如果你想在前端显示时间,你可以使用类似的东西
<f:format.date>{dateObject.begin}</f:format.date>
如果你想修改它的外观,你也可以使用 format 属性:
<f:format.date format="%d. %B %Y">{dateObject.begin}</f:format.date>
更多相关信息:TYPO3 Date format
可以通过以下 eval
解决该错误:
'eval' => 'time,null',
我正在尝试在与 MySQL 5.7.24 一起工作的 TYPO3 9 LTS 中输入时间。
在 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 中的错误还是我该如何解决此问题?
这意味着您为 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()
],
],
补充信息!
如果你想在前端显示时间,你可以使用类似的东西
<f:format.date>{dateObject.begin}</f:format.date>
如果你想修改它的外观,你也可以使用 format 属性:
<f:format.date format="%d. %B %Y">{dateObject.begin}</f:format.date>
更多相关信息:TYPO3 Date format
可以通过以下 eval
解决该错误:
'eval' => 'time,null',