Codeigniter 3.x вызов неопределенного метода - PullRequest
0 голосов
/ 04 сентября 2018

Я получаю сообщение об ошибке при попытке доступа к методу внутри libraries/View.php из core/App_controller.php. linkJS() установит разметку для вывода вида Почему этот метод не определен и как я могу преодолеть это?

Структура моей папки

приложение / ядро ​​/ App_controller.php

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

  $this->view = $this->load->library('view');

  $this->set_vars();
}

function set_vars(){
  $this->view->linkJS($this->js.'application.js');
}

применение / библиотеки / view.php

public function linkJS($src, $var = 'view_js') {

  if (!isset($this->vars[$var])) {
    $this->vars[$var] = {$var};
  }
  // more code ...
}

С views/shell.php Я бы хотел выдать echo $view_js;

ошибка:

Тип: Ошибка Сообщение: вызов неопределенного метода CI_Loader :: linkJS () Имя файла: C: \ xampp \ htdocs \ myproj \ application \ core \ App_Controller.php

1 Ответ

0 голосов
/ 04 сентября 2018

Из чата,

Сообщение об ошибке просто означает, что не удалось найти linkJS() метод / функцию.

Требуется специальный загрузчик MY_Loader.php или subclass_prefix по вашему выбору XXX_Loader.php, который содержит этот отсутствующий метод, о котором ваша ошибка жалуется на Call to undefined method CI_Loader:linkJS(), и должен находиться в application/core/XXX_Loader.php

Кроме того, убедитесь, что присвоено имя файла класса контроллера Ucfirst-подобный способ .

В ситуации ОП, перемещая функцию linkJS() с View.php на этот специальный загрузчик, class App_Loader extends CI_Loader { ... } добивается цели.

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