在 CodeIgniter 4 中显示错误消息

我很谦虚地寻求有关如何在 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');

但是这些功能都不起作用,如果我输入正确的数据它打印成功作为分配但错误的数据它都显示相同的错误消息是:

  1. 在 null 上调用成员函数 listErrors()。

  2. 在 null 上调用成员函数 listErrors()。

  3. 调用成员函数 showError() on null。

  4. 在 null 上调用成员函数 ShowError()。


收到一只叮咚
浏览 191回答 1
1回答

慕尼黑8549860

在验证开始之前在控制器中调用表单助手 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'))我希望这可以帮助您解决问题
打开App,查看更多内容
随时随地看视频慕课网APP