Routing TYPO3路由增强器:列表(带有可选分页和过滤器)和#x2B;详情在同一页上

Routing TYPO3路由增强器:列表(带有可选分页和过滤器)和#x2B;详情在同一页上,routing,typo3,typo3-9.x,Routing,Typo3,Typo3 9.x,目前,我在同一页面上使用两个不同的路由定义获得了列表视图和详细视图(都带有可选的类别参数),如下所示: routeEnhancers: RecipeListDetail: type: Extbase limitToPages: [2] extension: Myext plugin: Pi1 routes: - { routePath: '/{category_title}', _controller: 'Recipe::list', _a

目前,我在同一页面上使用两个不同的路由定义获得了列表视图和详细视图(都带有可选的类别参数),如下所示:

routeEnhancers:
  RecipeListDetail:
    type: Extbase
    limitToPages: [2]
    extension: Myext
    plugin: Pi1
    routes:
      - { routePath: '/{category_title}', _controller: 'Recipe::list', _arguments: {'category_title': 'category'} }
      - { routePath: '/{category_title}/{recipe_title}', _controller: 'Recipe::show', _arguments: {'category_title': 'category', 'recipe_title': 'recipe'} }
    defaultController: 'Recipe::show'
    aspects:
      category_title:
        type: PersistedAliasMapper
        tableName: sys_category
        routeFieldName: tx_myext_slug
      recipe_title:
        type: PersistedAliasMapper
        tableName: tx_myext_domain_model_recipe
        routeFieldName: slug         
现在,我想通过(可选)分页扩展此配置。因此,配置必须能够处理以下url格式:

  # List-View (optional category, optional pagination):
  /
  /category 
  /category/page-1 
  /page-1

  # Detail-View (with category):
  /category/recipe
此外,还存在另一个专用页面,用于在未给定类别参数时处理记录的详细视图。但这不是问题的一部分,因为配置仅限于另一个页面

更新2019-09-10:尝试添加3条路由(如chris.berlin所建议),每个url变量一条。已删除要调试的详细视图配置:

  - { routePath: '/category-{category_title}/page-{page}', _controller: 'Recipe::list', _arguments: {'category_title': 'category', 'page': '@widget_0/currentPage'} }
  - { routePath: '/category-{category_title}', _controller: 'Recipe::list', _arguments: {'category_title': 'category'} }
  - { routePath: '/page-{page}', _controller: 'Recipe::list', _arguments: {'page': '@widget_0/currentPage'} }

一旦涉及到分页,任何事情似乎都会出错。例如,单击第一个分页链接后,分页会松开类别参数。此外,有时错误的路线似乎匹配。使用“路由增强器+分页+附加参数”时可能会有任何错误吗?

您是否尝试添加另一个类似这样的路由

- { routePath: '/{category_title}/page/{number}'

也许这样就可以区分三条路由列表、列表+分页和详细视图。

是否尝试添加另一条这样的路由

- { routePath: '/{category_title}/page/{number}'

也许像这样,可以区分三个路由列表、列表+分页和详细视图。

源代码示例工作正常,但问题是有必要将“addQueryString”添加到分页视图帮助器。

源代码示例工作正常,但问题是有必要添加“addQueryString”“到分页viewhelper。

您需要在f:widget.link中添加addQueryStringMethod=“GET”,如下所示

<f:widget.link addQueryStringMethod="GET">{page.number}</f:widget.link>
{page.number}

您需要在f:widget.link中添加addQueryStringMethod=“GET”,如下所示

<f:widget.link addQueryStringMethod="GET">{page.number}</f:widget.link>
{page.number}