Как использовать маршрут для нескольких типов контента?

Я пытаюсь создать маршрут для конкретного типа контента, например, в документации к болту:

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,

Другие вопросы по тегам