我正在尝试在我的Codeigniter项目中创建一组表单验证规则,以便当第一组验证失败时,第二组验证规则不应运行。
我在CI手册中找到了以下内容:
$config = array(
'signup' => array(
array(
'field' => 'username',
'label' => 'Username',
'rules' => 'required'
),
array(
'field' => 'password',
'label' => 'Password',
'rules' => 'required'
),
array(
'field' => 'passconf',
'label' => 'PasswordConfirmation',
'rules' => 'required'
),
array(
'field' => 'email',
'label' => 'Email',
'rules' => 'required'
)
),
'email' => array(
array(
'field' => 'emailaddress',
'label' => 'EmailAddress',
'rules' => 'required|valid_email'
),
array(
'field' => 'name',
'label' => 'Name',
'rules' => 'required|alpha'
),
array(
'field' => 'title',
'label' => 'Title',
'rules' => 'required'
),
array(
'field' => 'message',
'label' => 'MessageBody',
'rules' => 'required'
)
)
);
$this->form_validation->set_rules($config);
我知道我现在可以分别运行每个集合的验证(在这种情况下是 $this->form_validation->run('signup') 和 $this->form_validation->run('email'))。
问题是,当我使用 $config 数组时,错误不会被添加到表单验证类中(因此不会显示出来),而表单提交失败。当我没有使用规则集,而只是使用 $this->form_validation->set_rules() 方法时,它确实添加并显示了错误。
我做错了什么,使得在使用一组规则时输入无效的表单数据时没有添加错误消息?