当form_validation->run()
返回FALSE
时,我需要知道哪条规则没有通过验证测试。
我知道我可以回显form_error()
或validation_errors()
,但这需要在加载视图之前完成。
控制器需要根据哪个输入未通过验证而采取不同的行动。
示例:
public function index()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');
if ($this->form_validation->run())
{
$this->load->view('something');
}
else
{
//check which rule didn't pass and act accordingly
}
}
我尝试在empty
语句中使用form_error('something')
上的if
,但这会返回错误,因为empty
没有功能。
另请注意,我无法更改错误分隔符,因为它们在脚本的其他位置使用。
如何在不回显validation_errors()
的情况下检查触发了哪条规则?
答案 0 :(得分:1)
您可以使用错误() -
public function index()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');
if ($this->form_validation->run())
{
$this->load->view('something');
}
else
{
print_r($this->form_validation->error());
}
}
答案 1 :(得分:0)
使用特定字段显示错误消息 form_error('用户名&#39)