【问题标题】:Unable to set validation rules loaded from config file codeigniter无法设置从配置文件 codeigniter 加载的验证规则
【发布时间】:2015-04-16 09:51:25
【问题描述】:

我的配置文件

config/login_rules

我在这里定义了我的登录表单验证规则

   <?php


/**
* SETTING VALIDATION RULES FOR THE LOGIN FORM
*/

$config['login_settings'] = array(

        array(
                'field' => 'password',
                'label' => 'Password',
                'rules' => 'required|trim|min_length[6]|max_length[20]|xss_clean',
                'errors' => array(
                        'required' => 'You must provide a %s.',
                ),
        ),

        array(
                'field' => 'email',
                'label' => 'Email',
                'rules' => 'required|trim|valid_email|xss_clean'
        )
);


/**
* SETTING ATTRIBUTES FOR THE LOGIN FORM
*/

$config['login_attribute'] = array(

        'form'  => array(

                        'id' => 'loginform',
                        'class' => 'form-horizontal', 
                        'role' => 'form'  
                        ),

        'email'=> array(

                        'id'=>'login-username',
                        'class' => 'form-control',
                        'name'=>'email',
                        'placeholder' => 'Enter Email',
                        'value'=>set_value('email')
                        ),

        'password' =>array(

                        'id'=>'login-password',
                        'class' => 'form-control',
                        'name'=>'password',
                        'placeholder'=>'Enter Password'

                        ),

        'checkbox' =>array(

                       'id'          => 'login-remember',
                       'class'       => 'form-control',
                       'name'        => 'remember_me',
                       'value'       => '1',
                       'checked'     => TRUE
                        ),

        'submit' =>array(

                       'id'          => 'btn-login',
                       'class'       => 'btn btn-success',
                       'name'        => 'submit',
                       'value'       => 'Login'

                      )
           );

?>

我的控制器 (Login.php)

在我的控制器中,我正在加载配置文件,尝试为其应用验证规则

    <?php
defined('BASEPATH') OR exit('No direct script access allowed');

class login extends CI_Controller {


        public function __construct() 
        {        

             parent::__construct();

             //$this->output->enable_profiler(TRUE);
        }

        public function index()
        {

            echo 'login controller index fun';
        }

        public function login()
        {

       $this->config->load('login_rules');

       $this->form_validation->set_rules($this->config->item('login_settings'));

       $data["login_attrib"] = $this->config->item("login_attribute");


            if ($this->form_validation->run() == FALSE)
            {
                $this->load->view('login_form',$data["login_attrib"]);
            }
            else
            {

                echo 'Success';
            }
        }

}

?>

我没有收到任何错误,验证规则也没有工作

查看文件(login_form.php)

  <?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<html>
<head>
<title>Admin Login</title>
</head>
<body>

<?php echo validation_errors(); 

echo form_open('login/login',$form);
echo form_input($email);
echo form_input($password);

echo form_submit($submit);
echo form_close();

?>

</body>
</html>

【问题讨论】:

  • 我尝试更改函数名称,但仍然没有应用验证,但如果我粘贴配置文件数组而不是 ($config = $this->config->load('login_rules', TRUE); ) 它的工作原理......,
  • 你能告诉我为什么从配置文件加载规则时没有应用规则
  • @Arkar Aung 不工作 $config = $this->config->load('login_rules', TRUE); $this->form_validation->set_rules($config["login_settings"]);
  • 我已经更新了我的答案。对不起我的笨拙错误。

标签: codeigniter validation


【解决方案1】:

试试这个。

$this->config->load('login_rules');

$this->form_validation->set_rules($this->config->item('login_settings'));

对你有用。

【讨论】:

  • 不客气。请不要忘记将其标记为正确答案。
猜你喜欢
  • 2014-11-16
  • 1970-01-01
  • 2012-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多