php - 验证总是返回消息 'required is not a valid rule' |代码点火器 4

标签 php validation codeigniter-4

我在 config/validation.php 中使用官方文档中的引用进行了验证 https://codeigniter4.github.io/userguide/libraries/validation.html像这样:

class Validation
{
   ....

   public $user = [
    'name' => [
        'rules' => 'required'
    ],
    'email' => [
        'rules' => 'valid_email|required',
        'errors' => [
            'valid_email' => 'E-mail is not valid',
            'required' => 'E-mail is required'
        ]
    ]
  ];
}
然后我像这样在我的 Controller 上调用它:
....

class User extends ResourceController
{
   public function create()
   {

     $name = $this->request->getPost('name');
     $email = $this->request->getPost('email');
     $country = $this->request->getPost('country');
     $province = $this->request->getPost('province');
     $city = $this->request->getPost('city');
     $day_of_birth = $this->request->getPost('day_of_birth');
     $password = $this->request->getPost('password');
     $phone_number = $this->request->getPost('phone_number');
     $photo = $this->request->getPost('photo'); 

     $data = [
        'name' => $name,
        'email' => $email,
        'country' => $country,
        'province' => $province,
        'city' => $city,
        'day_of_birth' => $day_of_birth,
        'password' => $password,
        'phone_number' => $phone_number,
        'photo' => $photo
     ];

     $validate = $this->validation->run($data,'user');
     $errors = $this->validation->getErrors(); 

     if($errors){
        return $this->fail($errors);
     }
    
     return $this->respond($data);
   }
 }
当我使用 postman 测试它时,我得到这样的返回:
enter image description here
如果我在 Controller 中进行验证,则验证工作正常,但我想在validation.php 中声明验证,请有人帮助我,无论我在validation.php 中写什么,然后我都使用$this->validation->run($data,'name') 调用总是返回相同的

最佳答案

您尚未在名称所需验证中添加错误消息,因此可能是问题所在,因此您必须向名称添加错误消息。
因为消息中的验证很重要。没有任何错误信息,用户怎么知道表单出了什么问题。
这是自定义函数或验证示例。改变你的功能就好了。

class Validation
{
    public $user = [
        'name' => [
            'rules'  => 'required',
            'errors' => [
                'required' => 'Name is required.'
            ]
        ],
        'email'    => [
            'rules'  => 'required|valid_email',
            'errors' => [
                'valid_email' => 'E-mail is not valid',
                'required' => 'E-mail is required'
            ]
        ],
    ];
}

关于php - 验证总是返回消息 'required is not a valid rule' |代码点火器 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67313974/

相关文章:

PHP/SQLite 接受不正确的发布值

php - 如何将变量从 php 页面传递到命令行

javascript - 如何重置 ajax 搜索中的值以对结果进行分页

php - 如何在新行中拆分单词?

angular - 在 Angular Reactive Forms 中的 FormGroup 实例上设置错误无法按预期工作

使用 XSD/trang HTML 5 Relax NG 到 XSD 转换进行 Java HTML 5 验证

validation - 只允许 react 组件中特定类型的子级

Codeigniter 4 电流/有源 Controller

php - CodeIgniter 4 重定向功能不起作用

class - Codeigniter 4 使用模型类的默认分页没有顺序和加入