【问题标题】:Displaying Error Message in CodeIgniter 4在 CodeIgniter 4 中显示错误消息
【发布时间】:2020-05-24 12:19:01
【问题描述】:

我谦虚地寻求有关如何在 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. 在 null 上调用成员函数 showError()。
  4. 在 null 上调用成员函数 ShowError()。

【问题讨论】:

    标签: php forms validation view controller


    【解决方案1】:

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

     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'))

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多