为了账号安全,请及时绑定邮箱和手机立即绑定

在 CodeIgniter 4 中显示错误消息

在 CodeIgniter 4 中显示错误消息

PHP
收到一只叮咚 2023-04-15 20:28:36
我很谦虚地寻求有关如何在 CI4 中显示错误消息的帮助。我已经创建了一个这样的控制器:public function login(){    $validation = \config\services::validation();    $errors  = array('email' => 'bad email',                'pass' => 'bad pass ');     if(!$this->validate(array('email' => 'required',                         'pass' => 'required')))    {        echo view('login', array('validation' => $this->validator));    }    else    {        print 'success';    }}同时测试了下面的每个错误报告功能:$validation->listErrors();$validation->listErrors('list');$validation->showError();$validation->showError('sigle');$validation->showError('email');但是这些功能都不起作用,如果我输入正确的数据它打印成功作为分配但错误的数据它都显示相同的错误消息是:在 null 上调用成员函数 listErrors()。在 null 上调用成员函数 listErrors()。调用成员函数 showError() on null。在 null 上调用成员函数 ShowError()。
查看完整描述

1 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

在验证开始之前在控制器中调用表单助手


 helper('form');

我像这样重新安排你的代码


public function login()

    {

        $data = [

            'validation' => \config\services::validation()

        ];


        if ($this->request->getMethod() == "post") { // if the form request method is post

            helper('form');

            $rules = [

                'email' => [

                    'rules' => 'required',

                    'errors' => [

                        'required' => 'bad email'

                    ]

                ],

                'pass' => [

                    'rules' => 'required',

                    'errors' => [

                        'required' => 'bad pass'

                    ]

                ]

            ];


            if (!$this->validate($rules)) {

                echo view('login', array('validation' => $this->validator));

            } else {

                // whatever you want todo 

            }

        }


        echo view('login', $data);

    }

在您的登录视图中,如果您想调用所有错误列表,请使用此方法$validation->listErrors();


如果你想调用一个特定的错误使用这个方法$validation->listErrors('email');


如果你想检查返回错误的特定字段使用此方法$validation->hasError('email'))


我希望这可以帮助您解决问题


查看完整回答
反对 回复 2023-04-15
  • 1 回答
  • 0 关注
  • 190 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信