我试图用控制器调用一个模板,但我无法让模板显示。我在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/');
}
主计长:
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>
发布于 2022-11-21 14:58:21
我通过更改和重命名包含模板和Controller.php it self的文件夹来解决这个问题,所以我没有让LoremQuestions
作为控制器,而是删除了它,并创建了另一个控制器,并在之后命名为Questions
。我删除了保存模板的文件夹,并创建了一个新的文件夹,因此lorem_questions
使用了questions
的名称,并在services.xml中重新注册了controller,现在它可以工作了。我正在获取模板中的值,请有人向我解释一下,在更改名称之后,它为什么会工作?
serives.xml现在看起来如下所示:
<service id="LoremQuestions\Controller\Frontend\Questions">
<tag name="shopware.controller" module="frontend" controller="Questions"/>
</service>
https://stackoverflow.com/questions/74519960
复制相似问题