[英]Shopware 5 Controller cant find templates
我正在尝试使用 controller 调用模板,但我无法显示该模板。 我在 serivces.xml 中注册了 Controller 和订阅者。 保存模板的文件夹的名称与 Controller lorem_questions
的名称相同。 我找不到问题所在。 这是我的代码的一些片段。
订户:
public static function getSubscribedEvents()
{
return [
'Enlight_Controller_Action_PreDispatch' => 'addTemplateDir',
];
}
public function addTemplateDir()
{
$this->templateManager->addTemplateDir($this->pluginDirectory . '/Resources/views/');
}
Controller:
class LoremQuestions extends Enlight_Controller_Action
{
public function indexAction()
{
}
public function loremQuestionsPrinterAction()
{
die($this->View()->assign("name", 2));
}
模板:
{extends file="parent:frontend/index/index.tpl"}
{block name="frontend_index_navigation_categories_top_include"}
<h1>yhfsajf</h1>
<h1>fsakfsa</h1>
<h1>fsakfsa</h1>
{/block}
或者:
{extends file="parent:frontend/index/index.tpl"}
{block name="frontend_detail_tabs_navigation_inner" append}
<a href="#" class="tab--link" title="Tab" data-tabName="tab">Fragen</a>
{/block}
{block name="frontend_detail_tabs_content_inner" append}
{debug}
<div class="tab--container">
<div class="tab--header>">
<a href="#" class="tab--title">Fragen</a>
</div>
<div class="tab--preview">
<a href="#" class="tab--link">um die Fragen zu sehen hier Klicken</a>
</div>
<div class="tab--content">
<div class="content--description">
<h1>{$name}</h1>
</div>
</div>
</div>
{/block}
服务:
<!-- Subscriber -->
<service id="lorem_questions.subscriber.frontend_subscriber"
class="LoremQuestions\Subscriber\FrontendSubscriber">
<argument>%lorem_questions.plugin_dir%</argument>
<argument id="template" type="service"/>
<tag name="shopware.event_subscriber"/>
</service>
<!-- Controller -->
<service id="LoremQuestions\Controller\Frontend\LoremQuestions">
<tag name="shopware.controller" module="frontend" controller="LoremQuestions"/>
</service>
我通过更改和重命名包含模板和 Controller.php 的文件夹解决了这个问题,而不是将LoremQuestions
作为 controller 我删除了它并创建了另一个 Controller 并将其命名为Questions
之后我删除了包含模板的文件夹并制作一个新的,所以用questions
的名称代替lorem_questions
,并在服务中重新注册 Controller。xml 现在可以使用了。 我正在获取模板内部的值,有人可以向我解释为什么更改名称后它有效吗?
serives.xml 现在看起来像这样:
<service id="LoremQuestions\Controller\Frontend\Questions">
<tag name="shopware.controller" module="frontend" controller="Questions"/>
</service>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.