Я пытаюсь добавить стороннее расширение для создания приложения HMVC, используя Codeigniter 3.0
Но когда я добавляю MY_Loader
а также MY_Router
файлы в папку ядра и папку MX в Third_party
папка, она генерирует фатальную ошибку:
Неустранимая ошибка: вызов неопределенного метода MY_Loader :: _ ci_object_to_array ()
в C: \ xampp \ htdocs \ codeigniter \ application \ third_party \ MX \ Loader.php
по линии 300.
Когда я их удаляю, приложение работает отлично. Существуют ли дополнительные настройки, необходимые для запуска приложения?
Это происходит потому, что функция, используемая в MX / Loader.php, больше не существует в CodeIgniter.
Вы можете добавить его обратно в Loader.php
protected function _ci_object_to_array($object) {
return is_object($object) ? get_object_vars($object) : $object;
}
Откройте файл приложения / third_party / MX / Loader.php
protected function _ci_object_to_array($object) {
return is_object($object) ? get_object_vars($object) : $object;
}
добавить вышеуказанную функцию в класс Loader.
Я нашел следующее решение
В application / third_party / MX / Loader.php вы можете изменить следующее.
В публичном представлении функции ($ view, $ vars = array (), $ return = FALSE) Ищите … (около строки 300)
return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
Замени это
if (method_exists($this, '_ci_object_to_array'))
{
return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
} else {
return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_prepare_view_vars($vars), '_ci_return' => $return));
}
Возможно, Wiredesignz скоро выпустит обновление для него. Тем временем вы можете реализовать вышеуказанное исправление и возобновить кодирование.
На линии 300 приложения / third_party / MX / Loader.php
Эта строка генерирует ошибку с CI 3.1.3
return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
Заменить на эту строку.
return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_prepare_view_vars($vars), '_ci_return' => $return));
}