为什么我的自定义验证方法以数组格式返回错误消息

时间:2018-10-24 15:22:12

标签: cakephp cakephp-3.0

这是我的自定义验证方法:

    $validator
        ->notEmpty('postcode', 'Postcode should not be empty')
        ->add('postcode', [
            'postcode_valid'=> [
                'provider' => 'table',
                'rule' => 'validatePostcode',
                'message' => 'Bitte geben Sie eine gültige Postleitzahl ein',
            ]
        ]);

如果在邮政编码字段中输入了一些无效数据,则该表的errors()方法将返回如下数组:

Array
(
[address] => Array
    (
        [postcode] => Array
            (
                [postcode_valid] => Bitte geben Sie eine gültige Postleitzahl ein
            )

    )
)

为什么要增加阵列?所有其他验证错误消息都只是字符串。我可以将自定义验证方法更改为仅返回字符串吗?

1 个答案:

答案 0 :(得分:0)

验证错误不是由主模型创建的,而是由关联的模型创建的,因此还有一个包装模型名称为键的包装数组。

(在我的示例中,这是一个注册表单。主要模型为user,该表单的某些字段属于关联的模型address。其中一个字段创建了验证错误)。< / p>