Typo3 类型3路由:列表和;在同一页上详细说明操作
访问详细信息页面时引发异常:Typo3 类型3路由:列表和;在同一页上详细说明操作,typo3,typo3-9.x,Typo3,Typo3 9.x,访问详细信息页面时引发异常:此插件不允许操作“详细信息”(控制器“产品”)。 我的路线增强器如下所示: ProductsPlugin: type: Extbase extension: Myext plugin: Products routes: - routePath: '/{product_slug}' _controller: 'Products::details'
此插件不允许操作“详细信息”(控制器“产品”)。
我的路线增强器如下所示:
ProductsPlugin:
type: Extbase
extension: Myext
plugin: Products
routes:
-
routePath: '/{product_slug}'
_controller: 'Products::details'
_arguments:
product_slug: productId
defaultController: 'Products::list'
defaults:
productId: '0'
aspects:
product_slug:
type: ProductsValueMapper
插件通过打字脚本嵌入:
lib.productsContent = USER
lib.productsContent {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
extensionName = Myext
pluginName = Products
vendorName = Vendor
switchableControllerActions {
Products {
1 = list
}
}
}
[request.getQueryParams()['tx_myext_products']['productId'] > 0]
lib.productsContent.switchableControllerActions.Products.1 = details
[end]
流体模板中的链接由以下内容生成:
<f:link.action class="button more" pageUid="38" action="details" arguments="{productId: '{product.product.id}'}">Mehr</f:link.action>
Mehr
我尝试在\u controller
和defaultController
的列表和详细信息之间切换。我还尝试删除一个或两个链接,但生成的链接包含GET参数,或者Detailview创建了上面的错误消息
有人能把我推到正确的方向吗
提前谢谢
编辑:
当我删除
\u控制器:“Products::details”
时,错误消息消失,并且正确调用了my details操作。但是详细信息操作的链接包含常规的GET参数。您能检查一下这个补丁吗?包括我在内的两个人都有同样的问题。问题是插件多次嵌入到同一页面上,这导致了问题
要解决此问题,您可以创建不同的插件或设置plugin.tx\u myext\u products.mvc.callDefaultActionIfActionCantBeResolved=1
请参阅:谢谢您的补丁。但不幸的是,结果仍然是一样的。我也更新了我的帖子。我和你一样在同一个页面上使用同一插件的多个实例,并且我还设置了“callDefaultActionIfActionCantBeResolved=1”,但我仍然无法生成正确的URL。我不通过打字脚本包含插件,而是通过插件内容元素和flexform可切换控制器动作。如果我删除路由增强器中的“_controller”部分,则正确的URL(如/product/example)仍然可以访问,但通过f:link.action或f:link.typolink在其他站点上生成的URL将无法像上面所述那样工作。所以默认操作对我不起作用:(。