TYPO3 9 Routing - 参数被默认值覆盖
TYPO3 9 Routing - the parameter gets overwritten by the defaults
我正在尝试创建一个像 /maincategory/subcategory/ 这样的 URL 结构,这很有效,它看起来不错,但在我的代码中它丢失了参数 "mwWsCategory2" 并将其替换为"defaults" 下的值。在此示例中,参数 "mwWsCategory2" 在 extbase-controller 中将为空,但 url 看起来不错且正确。
我尝试删除 "defaults" 然后我得到了正确的参数并且 url 看起来不错,但是 "mwWsCategory2" 是可选的,所以 /maincategory/ 不起作用 - 但我需要那个选项。
所以我也尝试保留 "defaults"-thing,但删除 "aspects" 下的 "categoryname2"。看起来像 /maincategory/2/ 但我得到了参数。所以它必须是默认值和 PersistedAliasMapper 之间的组合 - 我认为。也许。我希望比我聪明的人有答案。 :)
routeEnhancers:
Werbemittelshop:
type: Extbase
extension: Mwwerbemittelshop
plugin: Mwwerbemittelshop
routes:
- routePath: '/{categoryname}/{categoryname2}'
_controller: 'MwWsCategories::category'
_arguments:
categoryname: 'mwWsCategory'
categoryname2: 'mwWsCategory2'
defaults:
categoryname2: ''
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
试试这个:
routeEnhancers:
Werbemittelshop:
type: Extbase
extension: Mwwerbemittelshop
plugin: Mwwerbemittelshop
routes:
- routePath: '/{categoryname}/{categoryname2}'
_controller: 'MwWsCategories::category'
_arguments:
categoryname: mwWsCategory
categoryname2: mwWsCategory2
defaults:
categoryname2: ''
defaultController: 'MwWsCategories::category'
aspects:
mwWsCategory:
type: PersistedAliasMapper
tableName: tx_mwwerbemittelshop_domain_model_mwwscategories
routeFieldName: slug
mwWsCategory2:
type: PersistedAliasMapper
tableName: tx_mwwerbemittelshop_domain_model_mwwscategories
routeFieldName: slug
在“_arguements”下,您正在将 routePath 占位符映射到 variable/aspect。
类别名称 => mwWs类别
但使用占位符名称定义方面。只需使用映射的 aspects/variablename,这样定义就可以映射到链中。
我正在尝试创建一个像 /maincategory/subcategory/ 这样的 URL 结构,这很有效,它看起来不错,但在我的代码中它丢失了参数 "mwWsCategory2" 并将其替换为"defaults" 下的值。在此示例中,参数 "mwWsCategory2" 在 extbase-controller 中将为空,但 url 看起来不错且正确。
我尝试删除 "defaults" 然后我得到了正确的参数并且 url 看起来不错,但是 "mwWsCategory2" 是可选的,所以 /maincategory/ 不起作用 - 但我需要那个选项。
所以我也尝试保留 "defaults"-thing,但删除 "aspects" 下的 "categoryname2"。看起来像 /maincategory/2/ 但我得到了参数。所以它必须是默认值和 PersistedAliasMapper 之间的组合 - 我认为。也许。我希望比我聪明的人有答案。 :)
routeEnhancers:
Werbemittelshop:
type: Extbase
extension: Mwwerbemittelshop
plugin: Mwwerbemittelshop
routes:
- routePath: '/{categoryname}/{categoryname2}'
_controller: 'MwWsCategories::category'
_arguments:
categoryname: 'mwWsCategory'
categoryname2: 'mwWsCategory2'
defaults:
categoryname2: ''
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
试试这个:
routeEnhancers:
Werbemittelshop:
type: Extbase
extension: Mwwerbemittelshop
plugin: Mwwerbemittelshop
routes:
- routePath: '/{categoryname}/{categoryname2}'
_controller: 'MwWsCategories::category'
_arguments:
categoryname: mwWsCategory
categoryname2: mwWsCategory2
defaults:
categoryname2: ''
defaultController: 'MwWsCategories::category'
aspects:
mwWsCategory:
type: PersistedAliasMapper
tableName: tx_mwwerbemittelshop_domain_model_mwwscategories
routeFieldName: slug
mwWsCategory2:
type: PersistedAliasMapper
tableName: tx_mwwerbemittelshop_domain_model_mwwscategories
routeFieldName: slug
在“_arguements”下,您正在将 routePath 占位符映射到 variable/aspect。
类别名称 => mwWs类别
但使用占位符名称定义方面。只需使用映射的 aspects/variablename,这样定义就可以映射到链中。