后端TCA:可以使字段为空



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

到目前为止,我所拥有的是:

$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,
  ... 
);

所以截止日期是可以为null的,但我不知道如何实现。

BTW:我是打字3的新手,所以如果你认为我创建这个领域的方式很迟钝,或者有更好的方法,我会感谢你的建议。

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

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

相关内容

最新更新