如何解决手动选项卡安装返回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 举报,一经查实,本站将立刻删除。