Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typo3 为什么';t eval null在TCA中不起作用_Typo3_Extbase_Typo3 6.1.x - Fatal编程技术网

Typo3 为什么';t eval null在TCA中不起作用

Typo3 为什么';t eval null在TCA中不起作用,typo3,extbase,typo3-6.1.x,Typo3,Extbase,Typo3 6.1.x,我有一个定义如下的字段: max_items int(11) NULL 如果您在后端将此字段留空,我希望它存储空值 为此,我在TCA中使用此配置,但它不起作用: 'max_items' => array( 'exclude' => 0, 'label' => '...', 'config' => array( 'type' => 'input', 'eval' => 'null', ), ),

我有一个定义如下的字段:

max_items int(11) NULL
如果您在后端将此字段留空,我希望它存储空值

为此,我在TCA中使用此配置,但它不起作用:

'max_items' => array(
    'exclude' => 0,
    'label' => '...',
    'config' => array(
        'type' => 'input',
        'eval' => 'null',
    ),
),
编辑: 它不存储预期值
NULL
,而是存储
0
。 我尝试了
max\u items int(11)DEFAULT NULL
,但效果不好

编辑2: 谢谢freshp! 我最终编写了自己的评估函数:

<?php
class tx_myextension_evalfunc {
    function evaluateFieldValue($sValue, $aIsIn, &$bSet)
    {
        return ($sValue === '') ? null : $sValue;
    }
}
?>

旧的TYPO3版本中有一个bug:

TYPO3后端中的当前实现不允许存储空值,只允许空字符串或零作为数字

此错误存在于TYPO3 6.0及更高版本中。在TCA配置中,有一个新的eval选项“null”:

如果启用此选项,则在输入的右侧有一个复选框。如果它被停用,空值将保存到数据库中,如果它被激活,则可以输入整数值

如果要停用“每默认值”复选框以将Null存储为默认值,请将“默认值”=>Null添加到该复选框中:

'config' = array(
  'type' => 'input',
  'eval' => 'null',
  'default' => null,
);
在TYPO3 8 LTS中测试。然后看起来是这样的:


原始答复:

这里有两个有趣的链接:

  • 你问题的核心缺陷是-
  • 用自己的评估函数修复它的一种方法-

抱歉,“但它不起作用”没有多大帮助。你有错误吗?数据库中实际存储了什么?这是您字段的全部配置,还是您遗漏了什么?您应该在数据库字段中使用“max_items int(11)DEFAULT NULL”。谢谢您的评论,我编辑了问题。问题的第二部分是问题的一部分还是答案?
'config' = array(
  'type' => 'input',
  'eval' => 'null',
  ...
);
'config' = array(
  'type' => 'input',
  'eval' => 'null',
  'default' => null,
);