Codeigniter4 表单验证
Codeigniter4 form validation
我正在将我的应用程序从 CI3 移植到 CI4。
表单验证有问题。我的目标是仅在提交表单时验证输入。在 Codeigniter 3 中可以做:
$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()
来检查它是什么类型的请求。
你可以这样做:
if($this->request->getMethod() == 'post')
{
// Validation
}
我正在将我的应用程序从 CI3 移植到 CI4。
表单验证有问题。我的目标是仅在提交表单时验证输入。在 Codeigniter 3 中可以做:
$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()
来检查它是什么类型的请求。
你可以这样做:
if($this->request->getMethod() == 'post')
{
// Validation
}