我正在开发一个带控制器的模块,用于读取id_cart并执行一些操作。但是我无法调用Controller,它总是返回404错误。
模块:
<?php
if (!defined('_PS_VERSION_'))
exit;
class CartPortkey extends Module
{
public function __construct()
{
$this->name = 'cartportkey';
$this->tab = 'checkout';
$this->version = '1.0.0';
$this->author = 'Me and nobody else';
$this->need_instance = 0;
$this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_);
$this->bootstrap = true;
parent::__construct();
$this->displayName = $this->l('My Module Name');
$this->description = $this->l('My Module Description.');
$this->confirmUninstall = $this->l('Estás seguro de desinstalar?');
}
}
控制器
<?php
if (!defined('_PS_VERSION_'))
exit;
class CartPortkeyFrontController extends ModuleFrontController {
public function init(){
parent::init();
$id_cart = (int)Tools::getValue('id_cart');
$this->context->cookie->id_cart = $id_cart;
$link_order = $this->context->link->getPageLink('order');
Tools::redirect($link_order);
}
public function initContent() {
parent::initContent();
}
}
?>
我正在尝试这个网址:
http://localhost/shop/myshop1/index.php?fc=module&module=cartportkey&controller=cartportkeyfrontcontroller&id_cart=2
我必须指定我启用了多个存储,其中shop
是主要的,myshop1
是3个商店之一。
文件夹结构:
+ cartportkey
-- +controllers
-- -- +front
-- -- -- CartPortKeyController.php
-- cartportkey.php
我确保模块已在所有商店中安装并激活。
答案 0 :(得分:3)
您的控制器命名约定错误。
您需要按如下方式声明前端控制器类。
ModuleNameControllerFileNameModuleFrontController extends ModuleFrontController
所以目前你的控制器类应该声明为
CartPortKeyCartPoortKeyControllerModuleFrontController extends ModuleFrontController
然后使用以下URL加载控制器
http://localhost/shop/myshop1/index.php?fc=module&module=cartportkey&controller=cartpoortkeycontroller&id_cart=2