我正在尝试使用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'在课程登录中找不到。
非常感谢您的回复。谢谢!
答案 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');