Prestashop 1.6覆盖管理员控制器不覆盖

时间:2018-04-20 18:31:55

标签: prestashop-1.6

我试图覆盖AdminCarriersControllerCore,特别是postProcess方法(以便它更新运营商而不是删除并创建一个新的,因为它会破坏引用)。

首先检查它是否被覆盖:

<?php
class AdminCarriersController extends AdminCarriersControllerCore
{
    public function __construct(){
        die(var_dump('constructor'));
    }
}

我已将其置于以下路径

modules/<my_module_name>/override/controllers/admin/AdminCarriersController.php

它不会覆盖。

也试过:

modules/<my_module_name>/controllers/admin/AdminCarriersController.php

同时删除了缓存文件(没有像文档所说的那样自动重新生成)

rm class_index.php 

感谢您的帮助。 Official Prestashop docs page for overriding

注意:是的,我知道有一个reference_id或者其他什么,我不应该直接使用carrier_id,但模块已经太神秘了,并试图将carrier_id更改为正确的风险太大,耗时太多。

1 个答案:

答案 0 :(得分:0)

module_name/override中放置替代文件尚未执行任何操作。安装模块时,PrestaShop将检查您的模块中是否有覆盖文件,并检查您的覆盖类是否已经由另一个模块覆盖了方法。如果是,那么您将无法安装模块。

如果您已安装模块且由于某种原因无法重新安装,则需要将覆盖文件直接放入根override文件夹并删除 档案cache/class_index.php

我不确定是否通过模块升级安装了覆盖文件。我稍后会检查并更新答案。