繁体   English   中英

Shopware 5 Controller 找不到模板

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM