2012-08-12 28 views
1

我仍然在学习PHP函数一个链接,这样我的问题似乎有点明显,但...创建打开网页和运行包含的链接

我的问题涉及到Opencart的,但可能是一个相当普遍的在很多网站上练习。我正在创建一个opencart模块,在那个模块中我有几个完成不同任务的按钮。现在我已经为路径和适当的操作分配了正确的'href'按钮。例如

$this->data['dosomething'] = $this->url->link('module/modulename/dosomething', 'token=' . $this->session->data['token'], 'SSL'); 

注:我已经要求我的问题的目的,模块和行动的总称。

在控制我,然后有一个称为“索引”的私人功能,其次是私有函数称为“DoSomething的”像下面

public function index() { 

* insert code * 

} 

public function dosomething() { 

*insert code* 

$this->redirect($this->url->link('module/modulename', 'token=' . $this->session->data['token'], 'SSL')); 

} 

现在,我想知道我如何才能按钮直接到模块控制器,然后运行'dosomething'功能。我可以在链接中加入一些信息,即action = dosomething,并以这种方式进行,但opencart的大部分功能只是使用最后/作为动作的文本。如果我使用上面提到的href,我会得到一个错误,因为它试图找到位于'module/modulename/dosomething'中的控制器和模板,而不是位于'module/modulename'中的控制器和模板。使用函数'dosomething'。

我希望这是有道理的。我发现opencart中的许多其他脚本成功地使用了这种方法,但我不知道该怎么做?我相信我错过了一些明显的东西。

回答

1

你在做什么是正确的。如果指定方法,OpenCart的框架将使用第三条路线。如果您尝试

public function dosomething() { 
    die('OK'); 
} 

然后去你已经得到了URL,它应该只是显示一个空白页面,OK写在上面。我的猜测是这个错误实际上并不涉及控制器是一个问题,更多的是与你做的其他事情有关。或者说,或者方法和路线的第三部分不匹配,或者dosomething方法未公开

+0

干杯,我有'dosomething'功能作为私人。 – Mark 2012-08-13 01:07:41

相关问题