2012-08-12 60 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