CodeIgniter Неопределенное свойство при загрузке модели

Я получаю следующие ошибки при попытке реализовать очень простой контроллер модели в codeigniter. Я новичок в фреймворке, но, насколько я вижу, это должно работать.

Я также пробовал автоматическую загрузку модели. Я автоматически загружаю библиотеку базы данных.

Message: Undefined property: User::$user_model

Fatal error: Call to a member function get_user() on a non-object

Модель

class User_model extends CI_Model
{

function __construct()
{
    parent::__construct();
}


function get_user()
{
    return "test";
}


}

Контроллер

class User extends CI_Controller
{

public function __construct()
{
    parent::__construct();
}

function index()
{
    $this->load->model('User_model');

    $data['value'] = $this->User_model->get_user();

    $this->load->view('user_edit', $data);
}
}

Спасибо


person leejmurphy    schedule 09.12.2011    source источник
comment
Странно, теоретически это должно работать. Как называется файл модели, это user_model.php?   -  person aziz punjani    schedule 09.12.2011
comment
Да, это user_model.php, спасибо.   -  person leejmurphy    schedule 09.12.2011


Ответы (2)


просто используйте что-то вроде этого, $this->load->model('user_model'); не используйте $this->load->model('User_model'); и убедитесь, что у вас одно и то же имя, когда имя модели, например user_mode.php, и класс, например class User_model extends CI_Model(){}, поэтому, когда вы вызываете его из контроллера, используйте нижний регистр, как имя пользователя вашей модели $this->load->model('user_model')

person Khairu Aqsara    schedule 11.12.2011

Я думаю, что нашел проблему. У меня было несколько дополнительных методов установки в моем пользовательском контроллере, которые я использовал все время, и не думал, что они будут проблемой.

    public function __set($key, $value)
{
    // Check to see that the requested attribute exists and then assign the value
    if (property_exists($this, $key))
    {
        $this->$key = $value;
    } 
}

оказывается, мне нужно было убрать один из символов подчеркивания, так как codeigniter это не любит.

public function _set($key, $value)

Я действительно должен был включить весь класс, но я старался сделать его максимально простым!

person leejmurphy    schedule 09.12.2011