加載控制器的一些事情 -
1st - 您只能從相同的文件夾(admin/catalog)加載控制器。
2nd - 你可以從任何子文件夾加載控制器,只需要傳遞正確的加載路徑。
3rd - 如果Opencart沒有該文件而不會顯示任何錯誤,則結果將爲空/錯誤。
4th - 如果你正在定義任何函數名稱,那麼它將調用該函數,否則將調用索引函數,所以在你的案例索引。
5日 - 請使用
return $this->load->view('your.tpl', $data);
而不是
$this->response->setOutput($this->load->view('your.tpl', $data));
6日 - 請允許從PHP /管理您的調試模式,這樣你就知道任何錯誤,如果你的代碼拋出。清除你的error.log,然後嘗試加載控制器。
7 - 如果這些所有的點代碼不能正常工作,然後做1件事 - 與指數函數添加一個空白對照,只是添加一條線,這樣就可以返回它是從視圖然後就
echo 'here';
結果在你看來。如果OC沒有返回這個結果,這意味着你在Opencart文件中有錯誤,否則你的代碼有錯誤。
你可以說這些都在某種程度上相同(我不是完全說,不想傷害任何人的感情;)),但是這個代碼
$this->load->controller('account/com_top_menu');
等於(基於磁帶自動加載機)
$obj = new ComTopMenu; //assuming your class name
$data['com_top_menu'] = $obj->index();
所以您的解決方案請
- 你有文件com_top_menu.php您的產品目錄>控制器>帳戶>
- 您的文件類名必須是ControllerAccountComTopMenu(或任何大寫或小寫組合,但不包含_)
- 您的課程必須具有索引功能,因爲在您的情況下,它調用索引。
還有其他嗎?控制器'$ this-> load-> controller('account/com_top_menu')'你確定它工作正常嗎? –
我沒有使用iis。它在LAMP堆棧上運行。 – BeoWulf