duancan8382
2013-07-27 19:44 阅读 35
已采纳

调用未定义的方法JController :: getInstance()

i seem to have tried everything. I am trying to learn how to create a new component and currently my folder structure looks like this (please note that the component does install).

This is a picture of my folder structure:

enter image description here

Ive closed some of it because i found it irelevant but please if you need to see whats inside of them please let me know.

as i stated above the component does install without problems. however when i try to access it i get the following error:

Fatal error: Call to undefined method JController::getInstance() in /home/marcrasm/public_html/Joomla/administrator/components/com_helloworld/helloworld.php on line 13

Now the file it is refering to is this one:

    <?php
defined('_JEXEC') or die ('Restricted access');

jimport('joomla.application.component.controller');

$doc = JFactory::getDocument();
$doc->addScript("/components/com_helloworld/js/jquery.js");
$doc->addScript("/components/com_helloworld/js/com_helloworld_script.js");
$doc->addStyleSheet("/components/com_helloworld/css/com_helloworld_layout.css");

// gets the instance of the controller
// Get an instance of the controller prefixed by HelloWorld
$controller = JController::getInstance('HelloWorld');

// Perform the Request task
$input = JFactory::getApplication()->input;
$controller->execute($input->getCmd('task'));

// Redirect if set by the controller
$controller->redirect();

I know it can be hard to tell but does anyone know what the problem might be?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    dongshi3061 dongshi3061 2014-04-17 04:45

    Please check Joomla version

    In 3.X

       $controller  = JControllerLegacy::getInstance('HelloWorld');
    

    In 2.X

       $controller = JController::getInstance('HelloWorld');
    
    点赞 评论 复制链接分享
  • dongzhang4301 dongzhang4301 2013-07-27 19:46

    The error message says that the JController does not have the static method getInstance().

    点赞 评论 复制链接分享
  • douao1579 douao1579 2013-07-29 14:27

    You don't say what version you are on but you probably want JControllerLegacy for J3 unless you are building with the new MVC. JController does not have a getInstance() Method but JControllerLegacy does see github.com/joomla/joomla-cms/blob/master/libraries/joomla/controller

    点赞 评论 复制链接分享

相关推荐