Validation Codeigniter4表单验证
我正在将我的应用程序从CI3移植到CI4 表单验证有问题。我的目标是仅在提交表单时验证输入。在Codeigniter 3中,a可以执行以下操作:Validation Codeigniter4表单验证,validation,codeigniter-4,codeigniter-form-validation,Validation,Codeigniter 4,Codeigniter Form Validation,我正在将我的应用程序从CI3移植到CI4 表单验证有问题。我的目标是仅在提交表单时验证输入。在Codeigniter 3中,a可以执行以下操作: $this->load->library('form_validation'); $this->form_validation->set_rules('username', 'Username', 'required'); if ($this->form_validation->run()) { $usern
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required');
if ($this->form_validation->run()) {
$username = $this->input->post('username');
...
} else {
...
}
然后在我的视图中显示我的错误:
echo validation_errors();
或单独显示错误:
echo form_error('username');
如果提交表单,将显示所有错误。当我第一次访问该页面时,不会显示任何错误
现在在Codeigniter 4中:
我的控制器设置如下:
$validation = \Config\Services::validation();
$validation->setRule('username', 'Username', 'required|min_length[6]');
if ($validation->withRequest($this->request)->run()) {
$username = $this->request->getVar('username');
...
} else {
...
}
验证正在工作,但始终显示错误。即使表单未提交。确保您仅在收到“post”请求时进行验证。 您可以在控制器中使用$this->request->getMethod来检查请求的类型 您可以这样做:
$validation = \Config\Services::validation();
$validation->setRule('username', 'Username', 'required|min_length[6]');
if ($validation->withRequest($this->request)->run()) {
$username = $this->request->getVar('username');
...
} else {
...
}
如果$this->request->getMethod=='post'
{
//验证
}