Joomla 调用内部控制器功能

Posted

技术标签:

【中文标题】Joomla 调用内部控制器功能【英文标题】:Joomla call internal controller function 【发布时间】:2013-12-10 11:36:51 【问题描述】:

如何在同一个控制器文件中调用其他方法/函数?

例如:controller.php

class MyController extends JControllerLegacy

   function test() 
       $var = otherfunction();
       echo $var;
   
   function othermethod() 
       return 'something';
   

我在浏览器中收到错误消息。 致命错误:“调用未定义函数 othermethod()”。

我很乐意得到帮助...抱歉我的英语不好(;

【问题讨论】:

【参考方案1】:

为了在同一个类中调用方法,您可以使用this。而要调用函数,您需要包含具有函数定义的文件。

class MyController extends JControllerLegacy

   function test() 
       //include_once file_has_otherfunction_definition.php
       //$var = otherfunction();
       $var = $this->othermethod();
       echo $var;
   
   function othermethod() 
       return 'something';
   

【讨论】:

非常感谢 Irfan :)【参考方案2】:

你没有正确调用 joomla 控制器。

语法如下: 类组件名称控制器控制器名称

ex:class meadowmartControllercort 扩展了 Jcontroller 这里的deremmart 是组件名称,cort 是控制器。Controller 表示this 是控制器。

【讨论】:

【参考方案3】:

在平面 php 编程中,您可以通过函数名称调用函数,例如:

otherfunction();

但如果编程面向对象(如您插入的代码),则必须使用 $this->functionName/ 来调用其他函数。所以 test() 函数必须变成这样:

function test() 
   $var = **$this->otherfunction();**
   echo $var;

有关面向对象 PHP 的更多信息,请参阅this

【讨论】:

非常感谢 mohsenkw... 好网站,合格用户,快速响应!我喜欢:)

以上是关于Joomla 调用内部控制器功能的主要内容,如果未能解决你的问题,请参考以下文章

组件在 localhost 中加载,但在 live 上给出内部服务器错误:joomla

joomla 组件分配器显示 505 内部服务器错误

如何将 Joomla 组件调用到模块中?

从一个控制器内部调用一个方法

在控制器内部调用函数时,codeigniter 404 函数不起作用

Joomla 2.5 组件控制器加载