7

我似乎已经尝试了一切。我正在尝试学习如何创建一个新组件,目前我的文件夹结构如下所示(请注意该组件确实安装了)。

这是我的文件夹结构的图片:

在此处输入图像描述

我已经关闭了其中的一些,因为我发现它无关紧要,但是如果您需要查看其中的内容,请告诉我。

正如我上面所说的,组件安装没有问题。但是,当我尝试访问它时,出现以下错误:

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

现在它引用的文件是这个:

    <?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();

我知道这很难说,但有人知道问题可能是什么吗?

4

3 回答 3

22

请检查 Joomla 版本

在 3.X

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

在 2.X

   $controller = JController::getInstance('HelloWorld');
于 2014-04-17T04:45:01.893 回答
5

您没有说您使用的是什么版本,但您可能需要 JControllerLegacy for J3,除非您使用新的 MVC 进行构建。JController 没有 getInstance() 方法,但 JControllerLegacy 确实看到 github.com/joomla/joomla-cms/blob/master/libraries/joomla/controller

于 2013-07-29T14:27:23.990 回答
0

错误消息说JController没有静态方法getInstance()

于 2013-07-27T19:46:25.817 回答