Cakephp 2.5数字字段(int in db)和允许空不工作


Cakephp 2.5 Numeric field (int in db) and allow Empty not working

我有一个允许为空的数字输入字段,但如果不为空,我希望返回一个验证错误,例如,如果输入字母。

在那一刻,如果我删除允许空验证工作正好为数字和notEmpty,但这个字段是可选的,我怎么能解决这个问题?

下面是对我的模型的验证:

'tickets' => array(
    'numeric' => array(
        'rule' => 'numeric',
        'message' => 'Please enter only numbers',
        'allowEmpty' => true,
    ),
),

如果我再次设置allowEmpty为false,这将像预期的那样工作。我一直在尝试把规则分开,但到目前为止还没有成功。任何帮助都是感激的。

您指定"允许为空"answers"可选"的方式使我认为您所追求的实际上是必需的,您应该将其设置为false。

required => true与验证规则notEmpty()的含义不同。required => true表示数组键必须存在,但不表示它必须有值。因此,如果字段不存在于数据集中,验证将失败,但如果提交的值为空("),则可能(取决于规则)成功。

'tickets' => array(
    'numeric' => array(
        'rule' => 'numeric',
        'message' => 'Please enter only numbers',
        'allowEmpty' => true,
        'required' => false,
    )
),

意味着该字段可以是"可选的"(不包含在返回的数组中),如果包含它,则"允许为空",如果不是,则规则为"数字"。