Модель, загруженная в конструктор контроллера Codeigniter, недоступна другим функциям тех же контроллеров - PullRequest
2 голосов
/ 06 декабря 2011

Моя модель: как показано ниже, очень базовая

class User extends CI_Model
{
    function __construct()
    {
        parent::__construct();
    }

    function getAll()
    {
        $this->db->order_by("lastName", "asc");
        $this->db->order_by("firstName", "asc");
        $this->db->order_by("userName", "asc");
        $query = $this->db->get('user');

        // test for result
        if($query->num_rows() > 0)
        {
            return $query->result();
        }

        return NULL;
    }
}

Мой контроллер: на самом деле часть моего контроллера, каждый раз при загрузке функции user / display по умолчанию, появляется ошибка (далее). Должна ли модель, загруженная в конструктор контроллера, быть доступной для всех других функций в том же контроллере?

class Users extends CI_Controller
{
    function __contruct()
    {
        parent::__construct();
        $this->load->model('user');
    }

    function display()
    {
        $data['users'] = $this->user->getAll();

        $head['pageTitle'] = 'Users Panel';

        $this->load->view('security/redirect');
        $this->load->view('template/head', $head);
        $this->load->view('user/usersPanel', $data);
        $this->load->view('template/foot');
    }
}

Моя ошибка: ссылка на строку "$ data ['users'] = $ this-> user-> getAll ()" в вышеприведенном контроллере

A PHP Error was encountered
Severity: Notice
Message: Undefined property: Users::$user

Мое окружение:

Codeigniter 2.1.0;
Mac Lion;
MAMP 2.0;

Ответы [ 2 ]

9 голосов
/ 26 декабря 2012

Не должно ли это:

class Users extends CI_Controller
{
    function __contruct()
    {

быть таким:

class Users extends CI_Controller
{
    function __construct()
    {

заменить конструкцию на конструктив.

1 голос
/ 06 декабря 2011

Не должно ли это:

$data['users'] = $this->user->getAll();

будь таким:

$data['users'] = $this->user_model->getAll();

извините также название модели:

$ this-> load-> модель ( 'user_model');

и имя класса User_model расширяет CI_Model

Все мои проекты CI настроены таким образом.

http://codeigniter.com/user_guide/general/models.html

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