Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用TYPO3 9.5生成和解析自定义URL_Typo3_Typo3 9.x - Fatal编程技术网

如何使用TYPO3 9.5生成和解析自定义URL

如何使用TYPO3 9.5生成和解析自定义URL,typo3,typo3-9.x,Typo3,Typo3 9.x,我使用$GLOBALS['TSFE']->cObj->typoLink来生成一个链接,我还有一个类似这样的附加参数:ext_upluginname[d64]=31511,并希望返回类似于a/b/c的内容。然后我希望TYPO3将链接还给我,这样我可以在单击时解析它。我已经尝试了PersistedAliasMapper,但不允许返回任何带有斜杠的内容。我甚至尝试过自定义方面映射器。我得到一个错误: Parameter "tx_ext__pluginname__d64" for route "enha

我使用$GLOBALS['TSFE']->cObj->typoLink来生成一个链接,我还有一个类似这样的附加参数:ext_upluginname[d64]=31511,并希望返回类似于a/b/c的内容。然后我希望TYPO3将链接还给我,这样我可以在单击时解析它。我已经尝试了PersistedAliasMapper,但不允许返回任何带有斜杠的内容。我甚至尝试过自定义方面映射器。我得到一个错误:

Parameter "tx_ext__pluginname__d64" for route "enhancer_tx_ext__pluginname000000003e62d21a000000000514759a" must match "[^/]++" ("a/c" given) to generate a corresponding URL.
我能够生成和解析slug(URL)。我可以将它们存储在db中并检索它们。没问题

我从根页面(uid 1)生成它们


如何使其工作?

我假设您已经在数据库表或视图中创建了所需的路径,使用了TYPO3后端中的或自己创建的路径

然后可以在站点配置(config/sites/default/config.yaml)中使用

如果需要在单个路径中使用多个值除以斜杠(而不是组合的slug字段),请查看新闻扩展的。您只需要使用数据库映射器而不是静态映射器,但请记住,这可能会影响路由的性能


由于您没有提供有关用例的详细信息,我真的不明白您为什么需要这样一个带有斜杠的路径结构。

您是否在数据库和模式中添加了路径段字段?@gautamsinhmori是的,我有。您不认为您必须为自定义扩展编写YAML配置吗?看看这里的地图。这里@Georg Ringer为他的分机创建了路由。希望这能对你有所帮助!我更新了我的问题,让它更清楚。我有这样的东西:ext_uupluginname[d64]=31511,希望返回类似于a/b/c的东西,反之亦然。我已经尝试了PersistedAliasMapper,但不允许返回任何带有斜杠的内容。我甚至尝试过自定义方面映射器。我不知道怎么做。你不应该试图把3个不同的变量合并成一个!您可以提供具有多个值a、b和c的
typoLink
方法(以及生成链接的任何其他方法),而不是“a/b/c/”,并提供处理URL生成和路由的yaml配置。看看新闻扩展的存档URL,有年份和月份之类的变量,分隔符也是“/”。我可以轻松做到这一点。但是我会生成可变长度的URL。也就是说,URL可以像a/b/一样短,也可以像a/b/c/d/e/一样长。。。取决于文章在数据库中的深度。每个人都有不同数量的父母。好的,我明白了。那么我的问题是:为什么首先要使用内容管理系统来输出数据?如果您的需求如此特殊,那么使用Symfony或Laravel之类的框架,因为它们能够满足这种情况。如果您的数据结构超出了TYPO3的预期源和格式,那么TYPO3 CMS就不是一个好伴侣。有没有什么特别的原因让你更喜欢Typo3CMS而不是web框架?(如果你喜欢TYPO3宇宙,还有“流”)我已经和TYPO3合作多年了,可以做很多事情。我能够创建URL,所以我目前使用类似“domain.com/12487”的URL作为输出。在以前的版本中,我能够轻松地对自己的URL进行编码和解码。在版本9的发布中,他们去掉了两个钩子。而在你看来,实际上恰恰相反,对于这种类型的网站,TYPO3是最健壮的。没有必要仅仅因为URL就彻底检查并将所有内容转移到新的CMS。它还有许多更重要的方面。