【问题标题】:Prestashop - Controller Not Found in adminPrestashop - 在管理员中找不到控制器
【发布时间】:2017-01-04 15:16:01
【问题描述】:

我正在开发一个简单的模块,但我无法成功地使管理控制器工作。

这是我的模块的目录结构:

这是 AdminPaymentsController.php 文件:

<?php

class AdminPaymentsController extends  ModuleAdminController {

}

我使用此功能在我的模块安装上创建了一个选项卡:

public function installTab($parent, $class_name, $name) {
    $tab = new Tab();
    $tab->id_parent = (int)Tab::getIdFromClassName($parent);
    $tab->name = array();

    foreach (Language::getLanguages(true) as $lang) {
        $tab->name[$lang['id_lang']]  = $name;
    }

    $tab->class_name = $class_name;
    $this->module = $this->name;
    $tab->active = 1;

    return $tab->add();
}

然后这样称呼它:

    if (!$this->installTab('AdminCatalog', 'AdminPayments', 'Payments Management')) return false;

标签似乎安装正确:

但是当我打开它时,它会显示一条错误消息:

http://dev.prestashop.com/admin123asdf/index.php?controller=AdminPayments&amp;token=52dbfa9a1a6c3935fd3cbb1276bcbedb

为什么会这样?我该如何调试?

【问题讨论】:

    标签: php prestashop prestashop-1.6


    【解决方案1】:

    你的控制器文件名应该是AdminPayments.php

    并更改这一行:$this-&gt;module = $this-&gt;name; 为这一行:$tab-&gt;module = $this-&gt;name;

    祝你好运。

    【讨论】:

    • 这非常有效。我的十几个模块告诉我;)修复我评论的另一个错误。祝你好运。
    【解决方案2】:

    installTab 函数中有错字。应该是:

    $tab->module = $this->name;
    

    代替

    $this->module = $this->name;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-03
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-09
      相关资源
      最近更新 更多