后端TCA:可以使字段可以为空吗?

时间:2015-12-18 12:17:32

标签: typo3 nullable extbase

我需要一个后端字段,用户可以在其中输入时间(即“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',
            ),
        ),
        ...
    ),
);

但如果我在截止日期字段中没有输入任何内容,则会将“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的新手,所以如果你认为我创造这个领域的方式是迟钝的还是有更好的方法,我会感谢任何建议。

1 个答案:

答案 0 :(得分:2)

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

第二:您需要在字段配置中使用eval属性。将设置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设置有更多设置。