3

我正在尝试在 Joomla 3.x 的控制器中注册自定义任务,因此我正在修改构造函数(如 1.5/2.5 中):

<?php
 // No direct access to this file
defined('_JEXEC') or die('Restricted access');

class jjemailControllerjjemail extends JControllerLegacy
 {
/**
 * constructor (registers additional tasks to methods)
 * @return void
 */
public function __construct($config = array())
{
    parent::__construct($config);

    // Register Extra tasks
    $this->registerTask('email, 'email');
}

public function email()
{
    $this->setRedirect('index.php?option=com_jjemail&view=thanks', $msg);
}
}

现在,如果我在任务注册之前在构造函数中添加一个 var 转储,那么它会显示,但是在 email() 函数中添加一个 var 转储是什么都没有。所以我想我在某处注册任务失败了。

调用它的路线如下所示:JRoute::_('index.php?option=com_jjemail&task=jjemail.email');

有人知道为什么我会以如此愚蠢的方式失败吗?

4

1 回答 1

6

从 Joomla 1.5 开始,您不需要注册默认任务的名称。您只需注册别名以将它们映射到控制器的方法之一:

$this->registerTask('emailAbc, 'email');
$this->registerTask('unpublish, 'publish');

如果您无法停止应用程序的执行,则表明您从表单/链接中调用了错误的任务。

检查您的表单/链接是否包含正确的任务,例如: option=com_jjemail?task=jjemail.email Joomla 将为您完成所有工作,将“jjemail.email”映射到控制器的电子邮件方法

于 2013-06-14T22:21:53.070 回答