TYPO3设置控制器动作的模板视图

问题描述 投票:0回答:1

我想使用列表操作的视图模板作为我的列表按年度操作。我尝试了setTemplatePathAnd Filename但没有成功。它仍然找不到模板。

抱歉,找不到请求的视图。

技术原因是:没有找到模板。无法解析“XXX \ YYY \ Controller \ EventController”类中的操作“listByYear”的视图。

/**
  * action listByYear
  * @param \XXX\YYY\Domain\Model\Event $event
  *
  * @return void
  */
  public function listByYearAction(\XXX\YYY\Domain\Model\Event $event)
  {
    $date = $event->getStart();
    $events = $this->eventRepository->findByYear($date->format('Y'));
    $this->view->setTemplatePathAndFilename(
      'typo3conf/ext/' .
      $this->request->getControllerExtensionKey() .
      '/Resources/Private/Templates/Event/List.html'
    );
    debug('typo3conf/ext/' .
    $this->request->getControllerExtensionKey() .
    '/Resources/Private/Templates/Event/List.html');

    $this->view->assign('events', $events);

  }

如何让它使用列表模板?

typo3
1个回答
3
投票

答案很简单,你做不到。该视图已经初始化并要求在您的操作触发之前很好地解析模板,实际上在您可以影响它将查找的模板文件名的任何点之前。

按惯例解析的模板文件必须始终存在。这是允许您的控制器操作呈现的内容。然后,您可以,但我不建议您这样做,通过设置模板名称(操作)来覆盖模板文件。

总体建议:使用默认模板命名逻辑。如果需要重新使用模板,请考虑重构需要重用的模板部件,将它们放在部分模板中。

© www.soinside.com 2019 - 2024. All rights reserved.