首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Shopware 5控制器找不到模板

Shopware 5控制器找不到模板
EN

Stack Overflow用户
提问于 2022-11-21 13:51:57
回答 1查看 29关注 0票数 0

我试图用控制器调用一个模板,但我无法让模板显示。我在serivces.xml中注册了Controller和订阅服务器。保存模板的文件夹的名称与Controller lorem_questions相同。我找不到问题。这里有一些我的代码片段。

订户:

代码语言:javascript
运行
复制
        public static function getSubscribedEvents()
        {
            return [
                'Enlight_Controller_Action_PreDispatch' => 'addTemplateDir',
                ];
        }

        public function addTemplateDir()
        {
            $this->templateManager->addTemplateDir($this->pluginDirectory . '/Resources/views/');

        }

主计长:

代码语言:javascript
运行
复制
class LoremQuestions extends Enlight_Controller_Action
{

    public function indexAction()
    {

    }

    public function loremQuestionsPrinterAction()
    {

       die($this->View()->assign("name", 2));
    }

模板:

代码语言:javascript
运行
复制
{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}

或者:

代码语言:javascript
运行
复制
{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}

服务:

代码语言:javascript
运行
复制
        <!--  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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-21 14:58:21

我通过更改和重命名包含模板和Controller.php it self的文件夹来解决这个问题,所以我没有让LoremQuestions作为控制器,而是删除了它,并创建了另一个控制器,并在之后命名为Questions。我删除了保存模板的文件夹,并创建了一个新的文件夹,因此lorem_questions使用了questions的名称,并在services.xml中重新注册了controller,现在它可以工作了。我正在获取模板中的值,请有人向我解释一下,在更改名称之后,它为什么会工作?

serives.xml现在看起来如下所示:

代码语言:javascript
运行
复制
        <service id="LoremQuestions\Controller\Frontend\Questions">
            <tag name="shopware.controller" module="frontend" controller="Questions"/>
        </service>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74519960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档