访问详细信息页面时,会引发异常:The action "details" (controller "Products") is not allowed by this plugin.
我的路由增强器如下所示:
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
插件是通过 TypoScript 嵌入的:
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>
我尝试在_controller
和defaultController
的列表和详细信息之间切换。我也尝试删除一个或两个,但是生成的链接包含GET-Params或Detailview创建上面的错误消息。
有人能把我推向正确的方向吗?
谢谢!
编辑:
当我删除_controller: 'Products::details'
时,错误消息消失了,我的详细信息操作被正确调用。但是,到details操作的链接包含常规的GET参数。
答案 0 :(得分:1)
能否请您检查此补丁? https://review.typo3.org/c/59343/包括我在内的两个人都有相同的问题。
答案 1 :(得分:0)
问题是该插件在同一页面上多次嵌入,这会导致问题。
要解决此问题,您可以创建其他插件或设置plugin.tx_myext_products.mvc.callDefaultActionIfActionCantBeResolved = 1