Bug #87333

Slug fieldSeparator default value collides with symfony strict requirements

Added by Guido Schmechel 17 days ago. Updated 17 days ago.

Status:
New
Priority:
Should have
Assignee:
-
Category:
Link Handling, Site Handling & Routing
Target version:
-
Start date:
2019-01-05
Due date:
% Done:

0%

TYPO3 Version:
9
PHP Version:
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

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.

        'slug' => [
            'exclude' => true,
            'label' => 'URL Segment',
            'config' => [
                'type' => 'slug',
                'generatorOptions' => [
                    'fields' => ['city', 'street'],
                    'replacements' => [
                        '/' => '',
                        '&' => ''
                    ],
                ],
                'fallbackCharacter' => '-',
                'eval' => 'uniqueInPid',
            ],
        ],

Problem

If i call a list action which call this slug via f:link.page I get this error message:

Parameter "tx_ayacoopoi_poi__poi" for route "tx_ayacoopoi_poi_0" must match "[^/]++" ("cologne/streetname" given) to generate a corresponding URL.

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

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: '/'

History

#1 Updated by Guido Schmechel 17 days ago

  • Description updated (diff)

#2 Updated by Guido Schmechel 17 days ago

  • Description updated (diff)

Also available in: Atom PDF