Модель codeigniter не загружается в контроллер, но ошибок нет - PullRequest
2 голосов
/ 01 февраля 2011

У меня проблемы с моделями в Codeigniter. Я устанавливаю модель с именем Usermodel в /models/usermodel.php. и когда я пытаюсь загрузить его, он останавливает сценарий и все, что после него.

Когда я специально ввел неправильное имя в области -> load-> model, CI выдает ошибку, говоря, что ее невозможно найти (как ожидалось), когда все правильно, ничего не загружается.

Я по жизни не вижу, что происходит не так. Любая идея? Спасибо, Тим

Модель пользователя

class Usermodel {

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

    function displayUser()
    {
        echo "test";
    }
}

И класс

class Page extends Controller {

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

    function index()
    {

        echo "<h1>Test</h1>";
        $this->load->model('usermodel');
        $this->usermodel->displayUser();
    echo "<p>Model loaded</p>";

    }

}

Ответы [ 4 ]

8 голосов
/ 01 февраля 2011

В зависимости от вашей версии CI, вам необходимо расширить базовую модель, сейчас вы просто создаете новый пустой класс с именем Usermodel

пример

class Usermodel extends CI_Model {   //<-- Note "extends CI_model"

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

ПРИМЕЧАНИЕ

Этот синтаксис предназначен для Codeigniter 2.0

Документация

3 голосов
/ 01 февраля 2011

Вы пропустили расширение класса до класса CI 'Model':

class Usermodel extends Model {

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

    function displayUser()
    {
        echo "test";
    }
}
0 голосов
/ 10 марта 2016

Я думаю, что это проблема соглашения об именах для моделей. Если вы используете codeigniter 3.x, смотрите документацию.

  • class Model_student extends CI_Model
  • сохранить модель как Model_student, затем загрузить ее как
  • $this->load->model(Model_student);

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

Надеюсь, это поможет вам.

0 голосов
/ 19 сентября 2014

Сначала необходимо загрузить в __construct.

Примечание: путь не является URL-адресом, это путь к каталогу.

public function __construct()
{
    parent::__construct();
    $this->load->model('path/to/your/usermodel');
}

Затему вас индексная функция такая же, как у вас.

function index()
{
    echo "<h1>Test</h1>";
    $this->load->model('usermodel');
    $this->usermodel->displayUser();
    echo "<p>Model loaded</p>";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...