Typo3 后端TCA:是否可以使字段为空?

Typo3 后端TCA:是否可以使字段为空?,typo3,nullable,extbase,Typo3,Nullable,Extbase,我需要一个后端字段,用户可以在其中输入时间(即“23:13:46”,小时,分钟,秒)。但也可以完全不输入时间(当然应该与00:00:00不同)。是否可以使字段为空 到目前为止,我得到的是: $GLOBALS['TCA']['tx_something_domain_model_delivery'] = array( 'columns' => array( 'deadline' => array( 'exclude' =>

我需要一个后端字段,用户可以在其中输入时间(即“23:13:46”,小时,分钟,秒)。但也可以完全不输入时间(当然应该与00:00:00不同)。是否可以使字段为空

到目前为止,我得到的是:

$GLOBALS['TCA']['tx_something_domain_model_delivery'] = array(
    'columns' => array(     
        'deadline' => array(
            'exclude' => 1,
            'label' => 'Deadline',
            'config' => array(
                'dbType' => 'time',
                'type' => 'input',
            ),
        ),
        ...
    ),
);
但如果我在Deadline字段中不输入任何内容,它会将“00:00:00”存储到数据库中。数据库如下所示:

CREATE TABLE IF NOT EXISTS `tx_something_domain_model_delivery` (
  `uid` int(11) NOT NULL,
  `pid` int(11) NOT NULL DEFAULT '0',
  `deadline` time DEFAULT NULL,
  ... 
);
所以最后期限是可以取消的,但我不知道如何实现这一点


顺便说一句:我是typo3的新手,所以如果你认为我创造这个领域的方式是迟钝的,或者有更好的方式,我会感谢你的建议

首先:您正以预期的方式创建字段:-)

第二:您需要在字段的配置中使用属性。将设置
null
添加到其中。然后,您的配置应该如下所示:

$GLOBALS['TCA']['tx_something_domain_model_delivery'] = array(
    'columns' => array(     
        'deadline' => array(
            'exclude' => 1,
            'label' => 'Deadline',
            'config' => array(
                'dbType' => 'time',
                'type' => 'input',
                'eval' => 'null',
            ),
        ),
        ...
    ),
);

您可能会对
eval
设置感兴趣。

我尝试过,但当我将字段留空时,出于某种原因,它仍会将“00:00:00”写入数据库。谢谢你的回答!如果插入“00:00:00”,这是由于SQL字段具有默认值“00:00:00”。您可以在ext_tables.SQL中检查是否具有默认值,并因此看到它。