duanji7881 2018-09-04 16:55
浏览 43
已采纳

Codeigniter 3.x调用未定义的方法

I am getting an error when trying to access a method inside libraries/View.php from core/App_controller.php. linkJS() will set markup for view output. Why is this method undefined and how can I overcome this?

My folder structure

application/core/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');
}

application/libraries/View.php

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

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

From views/shell.php I would like to ouput echo $view_js;

error:

Type: Error Message: Call to undefined method CI_Loader::linkJS() Filename: C:\xampp\htdocs\myproj\application\core\App_Controller.php

  • 写回答

1条回答 默认 最新

  • dongzha2525 2018-09-04 18:27
    关注

    From the chat discussion,

    The error message simply means it couldn't find linkJS() method/function.

    It requires a special loader MY_Loader.php or subclass_prefix of your choice XXX_Loader.php, which contains that missing method your error is complaining about Call to undefined method CI_Loader:linkJS() and needs to be located in application/core/XXX_Loader.php

    Also, make sure the controller class file naming is Ucfirst-like manner.

    In OP's situation, moving the linkJS() function from View.php to that special loader, class App_Loader extends CI_Loader { ... } does the trick.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?