Routes 类型3 10路由:如何尊重TCA设置;uniqueInPid“;在路线方面?
给定TCA段塞配置:Routes 类型3 10路由:如何尊重TCA设置;uniqueInPid“;在路线方面?,routes,typo3,typo3-10.x,Routes,Typo3,Typo3 10.x,给定TCA段塞配置: 'slug' => [ 'label' => 'LLL:EXT:lns_games/Resources/Private/Language/locallang_db.xlf:lns_games.slug', 'config' => [ 'type' => 'slug', 'size' => 50,
'slug' => [
'label' => 'LLL:EXT:lns_games/Resources/Private/Language/locallang_db.xlf:lns_games.slug',
'config' => [
'type' => 'slug',
'size' => 50,
'generatorOptions' => [
'fields' => ['platform.slug', 'title'],
'fieldSeparator' => '/',
'prefixParentPageSlug' => false,
'postModifiers' => [
\Lns\LnsGames\UserFunctions\FormEngine\Slug::class . '->modifySlug'
]
],
'fallbackCharacter' => '-',
'eval' => 'uniqueInPid',
'default' => '',
'behaviour' => [
'allowLanguageSynchronization' => 1
],
]
],
结果出现了类似“pc/标准版”的Slug。
这个Slug在页面基础上是唯一的。
路由增强器的配置如下:
routeEnhancers:
GamePlugin:
type: Extbase
extension: LnsGames
plugin: GamesPlugin
routes:
- routePath: '{game_title}'
_controller: 'Game::show'
_arguments:
game_title: game
defaultController: 'Game::show'
requirements:
game_title: '^[a-zA-Z0-9\-\/]+$'
aspects:
game_title:
type: PersistedAliasMapper
tableName: tx_lnsgames_domain_model_game
routeFieldName: slug
带有f:link.action ViewHelper的链接生成生成指向该唯一url的正确链接:
<f:link.action pageUid="{game.gameObject.pid}" controller="Game" action="show" arguments="{game: game.gameObject}">
{game.gameObject.uid}
包含正确的对象
这将导致以下链接:
在其他页面上存在具有相同slug的其他链接,如:
请注意“pc/标准版”
遵循该链接现在会显示一个随机对象,而不是作为参数提供的对象
这是因为PersistedAlliasmapper找到所有具有该段塞的对象,并提供一个随机的。它忽略pid
我希望这一特殊页面的对象能够显示出来。
我怎样才能做到这一点