我正在使用2个表单(登录/注册)的视图上进行验证。
我使用isset方法检查提交的表单并相应地运行验证。
控制器功能登录
public function login(){
if (isset ($_POST['btnSignIn']))
{
if($this->form_validation->run() == FALSE) {
// do tasks
}
}
控制器功能寄存器
public function register(){
if (isset ($_POST['btnSignUp']))
{
if($this->form_validation->run() == FALSE) {
// do tasks
}
}
即使有这些代码,提交任何一个表单都会显示两个表单的错误。
但是我在form_validation.php中初始化了配置数组,其中包含两种形式的所有控件。
从配置数组中删除任何这些控件是我可以阻止显示错误的唯一方法,但它永远不会显示。
我的问题是,有什么方法可以实现这个来分离配置数组或验证以正确显示消息。
我希望我的问题很明确。
感谢任何帮助。
答案 0 :(得分:0)
这就是我的工作方式。
如CodeIgniter文档中所述。 https://www.codeigniter.com/userguide3/libraries/form_validation.html#saving-sets-of-validation-rules-to-a-config-file
这就是我们如何为每个表单分隔在配置数组中初始化的控件。
$config = array(
'signup' => array(
array(
'field' => 'username',
'label' => 'Username',
'rules' => 'required'
),
),
'email' => array(
array(
'field' => 'emailaddress',
'label' => 'EmailAddress',
'rules' => 'required|valid_email'
),
a
)
);
在控制器中运行验证时,我们需要使用
$this->form_validation->run('signin')
// this will run validation only for controls initialized under signin array
而不是
$this->form_validation->run()
// this will run validation only for all controls