如何为多个内容类型使用一条路线?

How to use a route for more than one contenttype?

我正在尝试创建一个特定于内容类型的路由,例如 the example in the bolt documentation:

pagebinding:
  path:           /{slug}
  defaults:
      _controller: 'Bolt\Controllers\Frontend::record'
      'contenttypeslug': page
  requirements:
      'contenttypeslug': 'Bolt\Controllers\Routing::getAnyContentTypeRequirement'

但在多种内容类型上运行(具体为 "pages" 和 "users")。

换句话说,我想做这样的事情:

pagebinding:
  path:           /{slug}
  defaults:
      _controller: 'Bolt\Controllers\Frontend::record'
      'contenttypeslug': page, user
  requirements:
      'contenttypeslug': 'Bolt\Controllers\Routing::getAnyContentTypeRequirement'

这个特定的例子不起作用,例如当domain.tld/page, user/somepage 未找到。

这样 domain.tld/somepagedomain.tld/username 都可以工作,
假设 somepage 是 "page" 记录的 slug,而 username 是 "user" 记录的 slug。

这可能吗?

简单的回答:你不能。只能有一个具有 /{slug} 的内容类型。

假设您有一个用户 'x' 和一个页面 'x'。有人去 'domain.tld/x',无法知道哪个是哪个。只需让用户有一个合乎逻辑的 URL,例如 /user/x