我学习了Prestashop,我尝试制作一个模块。
/module2
我有: - module2.php
(来自/module2
的主文件)
- /views/templates/hook/module2.tpl
(product.php
控制器的链接)
- /controllers/front/product.php
(即控制者)
- /views/templates/front/product.tpl
(来自product.php
控制器的视图)
module2.php
的所有内容都很好,module2.tpl
出现了。但是,当我按下module2.tpl
的链接时,它会将我发送给product.php
控制器,该控制器运行良好。
我使用@ini_set('display_errors', 'on');
查看可能的错误并发生错误:
Fatal error: Uncaught Error: Class 'module2productModuleFrontController' not found in /var/www/html/prestashop/classes/controller/Controller.php:142 Stack trace: #0 /var/www/html/prestashop/classes/Dispatcher.php(361): ControllerCore::getController('module2productM...') #1 /var/www/html/prestashop/index.php(28): DispatcherCore->dispatch() #2 {main} thrown in /var/www/html/prestashop/classes/controller/Controller.php on line 142
module2productModuleFrontController
是我的控制器(product.php
)中的类的名称。
名称格式似乎很好,因为我知道我必须使用:
name module
+ displayModuleFrontController
(module2 + productModuleFrontController)。
我不认为我必须通过/classes
目录查看错误,因为我不允许在那里进行修改。
我还从后台卸载了并重新安装了我的module2
,但错误仍在那里。
答案 0 :(得分:1)
试试这个:
在您的模块__construct
方法中:
public function __construct()
{
/* your stuff */
$this->controllers = array('product');
/* your stuff */
}
你的班级必须'扩展ModuleFrontController
类:
class module2ProductModuleFrontController extends ModuleFrontController
{
}
PS:如果您想显示错误,请转到config/defines.inc.php
并将_PS_MODE_DEV_
的值更改为true