如何为多个内容类型使用一条路线?
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/somepage
和 domain.tld/username
都可以工作,
假设 somepage
是 "page" 记录的 slug,而 username
是 "user" 记录的 slug。
这可能吗?
简单的回答:你不能。只能有一个具有 /{slug}
的内容类型。
假设您有一个用户 'x' 和一个页面 'x'。有人去 'domain.tld/x',无法知道哪个是哪个。只需让用户有一个合乎逻辑的 URL,例如 /user/x
。
我正在尝试创建一个特定于内容类型的路由,例如 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/somepage
和 domain.tld/username
都可以工作,
假设 somepage
是 "page" 记录的 slug,而 username
是 "user" 记录的 slug。
这可能吗?
简单的回答:你不能。只能有一个具有 /{slug}
的内容类型。
假设您有一个用户 'x' 和一个页面 'x'。有人去 'domain.tld/x',无法知道哪个是哪个。只需让用户有一个合乎逻辑的 URL,例如 /user/x
。