CodeIgniter 3 Невозможно найти модель, которую вы указали

Я получаю эту ошибку:

Unable to locate the model you have specified: Users_model

CodeIgniter - это версия 3. Имя файла Users_model.php. Он расположен в application\models, и он выглядит следующим образом:

defined('BASEPATH') OR exit('No direct script access allowed');
class Users_model extends CI_Model {

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

[...]
}

Я вызываю его из контроллера следующим образом:

$this->load->model('users_model');

Интересно, что он работает на локальном сервере mongoose, но не тогда, когда я развертываю его на сервере heroku.

Ответ 1

Ваш git может быть настроен на игнорировать изменения в файле в именах файлов. Эффект от этого: любые локальные изменения имени файла, который имеет уже развернутый (т.е. Только изменен), не отражаются в удаленном репозитории (heroku).

Например, если вы сначала развернули файл с именем users_model.php все строчные. Даже если вы измените локальную версию файла на users_model.php с заглавной буквы "U", пульт не отразит это изменение.

Как решить проблему. Чтобы сообщить git об обновлении имени файла, выполните следующую команду:

git config core.ignorecase false

Спасибо @Kamram за то, что заставило меня понять это и @FeanDoe за то, что я ответил на вопрос.

Ответ 2

Попробуйте это.

  • В вашей модели имя файла должно быть users_model.php.
  • внутренняя модель должна быть (Users_Model)

    class Users_Model extends CI_Model{}.

  • При вызове используйте $this->load->model('Users_Model');

Ответ 3

в папке "приложение/модели" вам следует изменить имя файла с "users_model.php" на "Users_model.php"