Bug #87333
Updated by Guido Schmechel almost 6 years ago
*Context* I combine two fields via TCA Slug ['city', 'street']. TYPO3 builds the slug correctly to e.g. "cologne/streetname". This is also displayed in the backend in the slug field. <pre><code class="php"> 'slug' => [ 'exclude' => true, 'label' => 'URL Segment', 'config' => [ 'type' => 'slug', 'generatorOptions' => [ 'fields' => ['city', 'street'], 'street', 'uid'], 'fieldSeparator' => '-', 'replacements' => [ '/' => '', '&' => '' ], ], 'fallbackCharacter' => '-', 'eval' => 'uniqueInPid', ], ], </code></pre> *Problem* If i call a list action which call this slug via f:link.page I get this error message: <pre> Parameter "tx_ayacoopoi_poi__poi" for route "tx_ayacoopoi_poi_0" must match "[^/]++" ("cologne/streetname" given) to generate a corresponding URL. </pre> I have not defined a field separator in the TCA config and so a slash is used by the code => https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/core/Classes/DataHandling/SlugHelper.php#L185 Symfony routing is in strict mode and so the slash isn't allowed. *Route Enhancer* <pre><code class="yaml"> routeEnhancers: DetailPoi: type: Extbase extension: AyacooPoi plugin: Poi routes: - { routePath: '{slug}', _controller: 'Poi::detail', _arguments: {'slug' : 'poi'} } defaultController: 'Poi::detail' aspects: slug: type: PersistedAliasMapper tableName: 'tx_ayacoopoi_domain_model_poi' routeFieldName: 'slug' routeValuePrefix: '/' </code></pre>