Как исправить ошибку Codeigniter: вызов функции-члена на null? - PullRequest
0 голосов
/ 09 января 2019

Я впервые исследую 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();
    }
}

Как вы думаете, в чем проблема?

1 Ответ

0 голосов
/ 09 января 2019

вы загрузили свой model верный путь, но чтобы использовать его, вы должны вызвать его имя класса (здесь User), чтобы работать правильно.

примечание: если вы хотите кодировать аккуратно и не конфликтовать с ними, попробуйте назвать ваши модели как User_model или User_m, поэтому, если у вас есть контроллер с именем User, он не конфликтует с твоя модель : -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...