嘿伙计们,我正在尝试在我的控制器中注册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);
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我在任务注册之前在构造函数中添加var转储然后显示但是在email()函数中添加var转储什么都没有.所以我想我在某处注册任务失败了.
调用此类似的路线如下: JRoute::_('index.php?option=com_jjemail&task=jjemail.email');
任何人都有任何关于为什么我以这种愚蠢的方式失败的想法 - 我一直盯着这看,这么久我已经睁眼了
从Joomla 1.5开始,您无需注册默认任务的名称.您只需注册别名以将它们映射到控制器的方法之一:
$this->registerTask('emailAbc, 'email');
$this->registerTask('unpublish, 'publish');
Run Code Online (Sandbox Code Playgroud)
如果你无法停止执行应用程序,它会建议你从表单/链接中调用错误的任务.
检查您的表单/链接是否包含正确的任务,如:option = com_jjemail?task = jjemail.email Joomla将为您完成所有工作,将"jjemail.email"映射到控制器的电子邮件方法