如何修复Codeigniter错误:在null上调用成员函数?

时间:2019-01-09 08:34:29

标签: php codeigniter null codeigniter-3

这是我第一次探索codeigniter,我一直在尝试创建一个登录名,如果在数据库中找不到用户,它将重定向回到登录屏幕。我没有成功,因为我遇到了这个错误:

first error message

之后

second error message

我尝试使用函数内部的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();
    }
}

你们认为这是什么问题?

1 个答案:

答案 0 :(得分:0)

您已经加载了model的真实方式,但是要使用它,必须调用其类名(此处为User)才能正常工作。

注意:如果您想以一种简洁的方式进行编码并且不与它们冲突,请尝试将您的模型命名为User_modelUser_m,因此,如果您有一个名称为{{1 }}与您的模型没有冲突。 :-)