Как использовать маршрут для нескольких типов контента?
Я пытаюсь создать маршрут для конкретного типа контента, например, в документации к болту:
pagebinding:
path: /{slug}
defaults:
_controller: 'Bolt\Controllers\Frontend::record'
'contenttypeslug': page
requirements:
'contenttypeslug': 'Bolt\Controllers\Routing::getAnyContentTypeRequirement'
Но работает с несколькими типами контента (в частности, "страницы" и "пользователи").
Другими словами, я хотел бы сделать что-то вроде этого:
pagebinding:
path: /{slug}
defaults:
_controller: 'Bolt\Controllers\Frontend::record'
'contenttypeslug': page, user
requirements:
'contenttypeslug': 'Bolt\Controllers\Routing::getAnyContentTypeRequirement'
Этот конкретный пример не работает, выдавая ошибку 404, когда, например, domain.tld/page, user/somepage
не найден
Так что оба domain.tld/somepage
а также domain.tld/username
Работа,
при условии, somepage
является фрагментом записи "страницы", и username
это кусок "пользовательской" записи.
Это возможно?
1 ответ
Простой ответ: вы не можете. Может быть только один тип контента, который имеет /{slug}
,
Скажем, у вас есть пользователь "x" и страница "x". Кто-то заходит в 'domain.tld/x', нет способа узнать, что есть что. Просто сделайте так, чтобы у пользователей был логический URL /user/x
,