CakePHP 3.x Validator拒绝接收正确的数据

时间:2017-12-12 10:40:23

标签: php validation cakephp cakephp-3.0

我试图验证POST以创建新用户,但Cake拒绝接受给定的数据。

验证器按以下方式设置:

    $validator
        ->requirePresence('first_name', 'create')
        ->notEmpty('first_name');

    $validator
        ->requirePresence('last_name', 'create')
        ->notEmpty('last_name');

    $validator
        ->email('email')
        ->requirePresence('email', 'create')
        ->notEmpty('email');

    $validator
        ->requirePresence('title', 'create')
        ->notEmpty('title');

当我使用

进行调试时,即使我以正确的格式,正确的数据类型提供所需的所有数据。
    $x = $employee->errors();
    if ($x) {
        debug($employee);
        debug($x);
    }

上述字段仍有错误:

'first_name' => [
    '_required' => 'This field is required'
],
'last_name' => [
    '_required' => 'This field is required'
],
'email' => [
    '_required' => 'This field is required'
],
'title' => [
    '_required' => 'This field is required'
]

我没想到Cakes Validator会遇到这个问题,为什么拒绝这个呢?此外,我不知道如何更深入地调试问题,因为验证器中发生了很多自动化。

无论字段是否填写了正确的数据,或者根本没有填写错误,我都会发现错误 - 我无法在SO或其他地方找到任何人来调试此问题,所以我在这里问。

提前致谢

1 个答案:

答案 0 :(得分:1)

发现错误:

employee是一个对象,验证器没有查看对象,但查找了对象级别的字段。

我通过将范围转移到对象中解决了它 - 解决了它:)

初学者错误我想,很高兴找到它。

感谢您的帮助!