CodeIgniter 3:未定义的方法CI_Form_validation :: setrules()

时间:2017-02-18 17:20:57

标签: php codeigniter-3

我正在尝试使用CodeIgniter 3创建一个简单的登录过程。但是,每次我在登录表单上单击提交时都会收到此错误:

  

遇到PHP错误

     

严重性:错误

     

消息:调用未定义的方法CI_Form_validation :: setrules()

     

文件名:controllers / Login.php

     

行号:33

     

回溯:

这是我的控制器代码:

class Login extends CI_Controller
{
    public function __construct()
{
    parent::__construct();
    $this->load->helper('form');
    $this->load->library('form_validation');
    $this->load->library('session');
    $this->load->model('login_model');

}

public function index()
{
    if(isset($this->session->userdata['logged_in']))
    {
        $this->load->view('template');
    }else{
        $this->load->view('login');
    }
}

public function auth_user()
{
    $this->form_validation->setrules('username', 'Username', 'trim|required|xss_clean');
    $this->form_validation->setrules('pass', 'Password', 'trim|required|xss_clean');

    if($this->form_validation->run() == TRUE)
    {
        echo 'IT WORKS';
        $data = array(
          'username' => $this->input->post('username'),
          'password' => $this->input->post('pass')
        );
        //check user credentials
        $result = $this->login_model->login($data);

        if($result == TRUE)
        {   //get user info
            $session_data = array(
                'username' => $result[0]->username
            );
            $user_id = $result->staffID;
            $this->login_model->staff_logs($user_id);
            $this->session->set_userdata('logged',$session_data);
            $this->load->view('template');
        }
    }else{
        echo 'IT not work';
    }
}
}

我正在使用PHPStorm,当我悬停 form_validation 时,它表示Field' form_validation'在课程登录中找不到。

非常感谢您的回复。谢谢!

1 个答案:

答案 0 :(得分:0)

你错过了set_rules(....)中的 _

将您的代码更改为

    $this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean');
    $this->form_validation->set_rules('pass', 'Password', 'trim|required|xss_clean');

来自

    $this->form_validation->setrules('username', 'Username', 'trim|required|xss_clean');
    $this->form_validation->setrules('pass', 'Password', 'trim|required|xss_clean');