这是我第一次探索codeigniter,我一直在尝试创建一个登录名,如果在数据库中找不到用户,它将重定向回登录屏幕。我没有成功,因为我收到此错误:
第一条错误消息
其次
第二条错误消息
我尝试使用 verify() 函数加载数据库和会话
$this->load->database();
$this->load->session();
但即便如此,我认为它不起作用,因为我已经在autoload.php
中声明了数据库和会话
$autoload['libraries'] = array('database', 'session');
这是controllers/Login.php
class Login extends CI_Controller{
function index(){
$this->load->view("templates/_header");
$this->load->view("login");
$this->load->view("templates/_footer");
$this->load->view("templates/_scripts");
}
function verify(){
$this->load->model('user');
$check = $this->model->validate();
if($check){
} else {
redirect('login');
}
}
}
这是models/User.php
<?php
class User extends CI_Model{
function validate(){
$arr['username'] = $this->input->post('username');
$arr['password'] = password_hash($this->input->post('password', PASSWORD_DEFAULT));
return $this->db->get_where('users', $arr)->row();
}
}
你们认为它有什么问题?
你已经以正确的方式加载了你的model
,但要使用它,你必须调用它的类名(这里是User
)才能正常工作。
注意:如果您想以干净的方式编码并且不冲突,请尝试将模型命名为User_model
或User_m
,因此,如果您的控制器名称为User
,则它不会与您的模型冲突。:-)