我正在将我的应用程序从 CI3 移植到 CI4。
表单验证有问题。我的目标是仅在提交表单时验证输入。在Codeigniter 3中,a 可以:
$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 {
...
}
验证工作正常,但始终显示错误。即使没有提交表单。