【问题标题】:CakePHP 3.x Validator refuses to take correct dataCakePHP 3.x Validator 拒绝获取正确的数据
【发布时间】:2018-05-26 00:24:49
【问题描述】:

我正在尝试验证 POST 以创建新用户,Cake 拒绝接受给定数据。

Validator的设置方式如下:

    $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 或其他地方找不到任何人来调试这个问题,所以我在这里问。

提前致谢

【问题讨论】:

  • 花点时间看看用户实体。检查可访问的数组列表。
  • debug($employee) 输出什么?那里有田地吗?

标签: php validation cakephp cakephp-3.0


【解决方案1】:

发现错误:

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

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

我猜是初学者的错误,很高兴找到它。

感谢您的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多