我在typo3 中遇到问题,无法通过typenum 访问我的控制器操作。我用的是typo3 v12。我的路线中有以下内容
- routePath: '/rss.xml'
_controller: 'Article::feed'
das ruft folgende methode auf
public function feedAction(): ResponseInterface
{
$articles = $this->getArticles();
$this->view->assign('articles', $articles);
$response = $this->responseFactory->createResponse()
->withBody($this->streamFactory->createStream($this->view->render()));
throw new PropagateResponseException($response, 200);
}
如果我现在调用domain.com/news/rss.xml,我会得到我的XML 视图。如何使用 typenum 获得相同的结果?
我已经尝试过一些,但我的文章总是为空
另外,是否可以直接通过domain.com/rss.xml获取XML格式的文章,而不是在新闻页面附加/rss.xml?
一般来说,您会设置一个新的 PAGE 对象,其 typeNum 不同于 0。 完整的示例位于文档中:https://docs.typo3.org/p/georgringer/news/11.4/en-us/Tutorials/BestPractice/Rss/Index.html
在大多数情况下,实际上不需要条件,因为如果 typeNum 匹配,就会启动 PAGE。
如果您有其他配置代码,例如覆盖 tt_content 的换行或特定于此 typeNum 的插件设置,那么我会像这样放置一个条件(TYPO3 V12):
[request && request.getPageArguments()?.getPageType() == {$plugin.tx_news.rss.channel.typeNum}]
如果您仍然想为其提供说话路径,只需在站点配置中添加静态映射即可:
routeEnhancers:
PageTypeSuffix:
type: PageType
map:
rss.xml: 9818
为了让您的打字稿调用 extbase 控制器操作,我将创建一个插件并在打字稿中调用它,如下所示:
feed_page = PAGE
feed_page {
typeNum = 9818
10 = USER
10.userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
10.extensionName= ExtensionName
10.pluginName = PluginName
10.vendorName = Vendor
或者像新闻示例中那样直接注入插件。