问题描述
我的管理控制器如下所示:
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 (将#修改为@)