首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TYPO3 10路由参数为空

TYPO3 10路由参数为空
EN

Stack Overflow用户
提问于 2021-12-13 16:56:31
回答 1查看 317关注 0票数 0

TYPO3 9 Routing - the parameter gets overwritten by the defaults --一年零八个月后,我们正在尝试更新到TYPO3 10,然后更新到TYPO3 11。正如你所看到的,站点配置完美地工作在für typo3 9上,但现在不再是了。

代码语言:javascript
复制
routeEnhancers:
  Werbemittelshop:
    type: Extbase
    extension: Mwwerbemittelshop
    plugin: Mwwerbemittelshop
    routes:
      -
        routePath: '/{categoryname}/{categoryname2}/{categoryname3}'
        _controller: 'MwWsCategories::category'
        _arguments:
          categoryname: mwWsCategory
          categoryname2: mwWsCategory2
          categoryname3: mwWsCategory3
      -
        routePath: '/{productname}'
        _controller: 'MwWsCategories::product'
        _arguments:
          productname: mwWsProduct
    defaults:
      categoryname2: ''
      categoryname3: ''
    defaultController: 'MwWsCategories::category'
    aspects:
      categoryname:
        type: PersistedAliasMapper
        tableName: tx_mwwerbemittelshop_domain_model_mwwscategories
        routeFieldName: slug
      categoryname2:
        type: PersistedAliasMapper
        tableName: tx_mwwerbemittelshop_domain_model_mwwscategories
        routeFieldName: slug
      categoryname3:
        type: PersistedAliasMapper
        tableName: tx_mwwerbemittelshop_domain_model_mwwscategories
        routeFieldName: slug
      productname:
        type: PersistedAliasMapper
        tableName: tx_mwwerbemittelshop_domain_model_mwwsproducts
        routeFieldName: slug

“产品名称”的工作方式与预期完全一致。它是一个可读的url,如example.de/test123,它使用控制器的正确操作。

"categoryname2“和"categoryname3”是问题所在。如果我打开example.de/ works 1/它可以工作,但是如果我添加了第二个或第三个参数,我的参数是空的(example.de/works 1/works 2),而且我不理解它。

代码语言:javascript
复制
/**
     * action category
     *
     * @param \MwWerbemittelshop\Mwwerbemittelshop\Domain\Model\MwWsCategories $mwWsCategory
     * @param \MwWerbemittelshop\Mwwerbemittelshop\Domain\Model\MwWsCategories $mwWsCategory2
     * @param \MwWerbemittelshop\Mwwerbemittelshop\Domain\Model\MwWsCategories $mwWsCategory3
     * @return void
     */
    public function categoryAction(
        \MwWerbemittelshop\Mwwerbemittelshop\Domain\Model\MwWsCategories $mwWsCategory = null, 
        \MwWerbemittelshop\Mwwerbemittelshop\Domain\Model\MwWsCategories $mwWsCategory2 = null, 
        \MwWerbemittelshop\Mwwerbemittelshop\Domain\Model\MwWsCategories $mwWsCategory3 = null
    )
    {
        var_dump($this->request->getArguments());
        var_dump($mwWsCategory);
        exit;

你们中有人能发现我的错误吗?我试了这么多版本,但都没有用。如果你有问题或者想要更多的代码,那就去问吧。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-14 18:50:15

我说不出原因,但如果你把每一种情况定义为自己的路线,这是可行的:

categories

  • three categories

  • productsname

  • one分类
  • 2

...and是一个没有任何给定参数的默认大小写(或默认值!):

代码语言:javascript
复制
routeEnhancers:
  Werbemittelshop:
    type: Extbase
    extension: Mwwerbemittelshop
    plugin: Mwwerbemittelshop
    routes:
      -
        routePath: '/{productname}'
        _controller: 'MwWsCategories::product'
        _arguments:
          productname: mwWsProduct
      -
        routePath: '/{categoryname}'
        _controller: 'MwWsCategories::category'
        _arguments:
          categoryname: mwWsCategory
      -
        routePath: '/{categoryname}/{categoryname2}'
        _controller: 'MwWsCategories::category'
        _arguments:
          categoryname: mwWsCategory
          categoryname2: mwWsCategory2
      -
        routePath: '/{categoryname}/{categoryname2}/{categoryname3}'
        _controller: 'MwWsCategories::category'
        _arguments:
          categoryname: mwWsCategory
          categoryname2: mwWsCategory2
          categoryname3: mwWsCategory3
    defaultController: 'MwWsCategories::category'
    aspects:
      categoryname:
        type: PersistedAliasMapper
        tableName: tx_mwwerbemittelshop_domain_model_mwwscategories
        routeFieldName: slug
      categoryname2:
        type: PersistedAliasMapper
        tableName: tx_mwwerbemittelshop_domain_model_mwwscategories
        routeFieldName: slug
      categoryname3:
        type: PersistedAliasMapper
        tableName: tx_mwwerbemittelshop_domain_model_mwwscategories
        routeFieldName: slug
      productname:
        type: PersistedAliasMapper
        tableName: tx_mwwerbemittelshop_domain_model_mwwsproducts
        routeFieldName: slug
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70338204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档