手动选项卡安装返回true,但在Prestashop 1.7中未显示在后台

问题描述

我的管理控制器如下所示:

use PrestaShopBundle\Controller\Admin\FrameworkBundleAdminController;
use PrestaShopBundle\Security\Annotation\AdminSecurity;
use Symfony\Component\HttpFoundation\Response;

class IezonPortfolioController extends FrameworkBundleAdminController {
    const TAB_CLASS_NAME = 'IezonPortfolioController';
    
     /**
     * @AdminSecurity("is_granted('read','IezonPortfolioControllerTabsManualTab')")
     *
     * @return Response
     */
    
    public function indexAction()
    {
        return $this->render('@Modules/iezonportfolio/views/templates/admin/display.html.twig',array(
            'contents_iezonportfolio' => \Module::getInstanceByName('iezonportfolio')->selectAll()
        ));
    }
}

通过这样的标签安装:

protected function _installTabs()
{
    $controllerClassName = IezonPortfolioController::TAB_CLASS_NAME;
    
    $tabId = (int) Tab::getIdFromClassName($controllerClassName);
    if (!$tabId) {
        $tabId = null;
    }

    $tab = new Tab($tabId);
    $tab->active = 1;
    $tab->class_name = $controllerClassName;
    $tab->route_name = 'iezonportfolio';
    $tab->name = [];
    foreach (Language::getLanguages() as $lang) {
        $tab->name[$lang['id_lang']] = $this->trans('My Portfolio',[],'Modules.IezonPortfolio.Admin',$lang['locale']);
    }
    $tab->icon = 'build';
    $tab->id_parent = (int) Tab::getIdFromClassName('IMPROVE');
    $tab->module = $this->name;

    return (bool) $tab->save();
}

路线如下:

iezonportfolio:
  path: iezonportfolio
  methods: [GET]
  defaults:
    _controller: 'IezonPortfolioController::indexAction'

我的Twig模板如下:

{% extends '@PrestaShop/Admin/layout.html.twig' %}

{% block content %}
  Test
{% endblock %}

当我上传模块以在后台测试输出时,该选项卡未显示。我的模块安装方法如下:

public function install() {
    return (parent::install() && $this->_installTabs() &&
        $this->registerHook('displayHome')
        && $this->registerHook('header'));
}

模块抛出此错误:

ClassNotFoundException on line:

$controllerClassName = IezonPortfolioController::TAB_CLASS_NAME;

但是Demo Controller从不包含Controller吗?有什么想法吗?

更新:如果我删除了它,而只是手动将'IezonPortfolioController'输入为String,它可以很好地安装,但不会显示选项卡吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...