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.

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

报告相同问题?

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改