首页 > 解决方案 > 为什么我的自定义验证方法以数组格式返回错误消息

问题描述

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

    $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
            )

    )
)

为什么有一个额外的数组?所有其他验证错误消息都只是字符串。我可以将我的自定义验证方法更改为只返回一个字符串吗?

标签: cakephpcakephp-3.0

解决方案


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

(在我的示例中,它是一个注册表单。主模型是user并且表单的某些字段属于关联模型address。其中一个字段创建了验证错误)。


推荐阅读