Routing 两条不同路线具有相同路径的螺栓CMS

Routing 两条不同路线具有相同路径的螺栓CMS,routing,routes,bolt-cms,Routing,Routes,Bolt Cms,请参见以下内容类型: pages: name: Pages singular_name: Page fields: # etc blogitems: name: Blogitems singular_name: Blog fields: # etc 我不希望博客显示为/blog/slug,而是像页面一样显示为slug 如何在routes中正确定义此选项?在最后一次尝试中,我发现在正常页面上返回一个错误: pagebinding:

请参见以下内容类型:

pages:
    name: Pages
    singular_name: Page
    fields:
    # etc

blogitems:
    name: Blogitems
    singular_name: Blog
    fields:
    # etc
我不希望博客显示为
/blog/slug
,而是像页面一样显示为
slug

如何在routes中正确定义此选项?在最后一次尝试中,我发现在正常页面上返回一个错误:

pagebinding:
     path: /{slug}
     defaults:
         _controller: controller.frontend:record
         contenttypeslug: page
     contenttype: pages

blogitemsbinding:
    path:  /{slug}
    defaults:
        _controller: controller.frontend:record
    requirements:
        contenttype: blogitems
问题是,当我把它们都留下时,上面的第一个会起作用,但下面的一个不会


谁能解释一下这一点,因为不幸的是这里没有记录:

Silex/Symfony中的路由是基于regex的,匹配是二进制的,不幸的是,一旦路由匹配,那么这是唯一将运行的路由,因此为什么第一个路由匹配,而第二个路由被忽略

没有一种方法可以实现您想要的开箱即用-要实现它,您需要将第一个匹配指向您自己的控制器方法,而不是默认的
控制器。前端:录制
,在您自己的方法中,您可以循环浏览您想要支持的内容类型,并继续查找,直到找到匹配的slug无论内容类型如何


Bolt无法将其作为标准功能支持,因为它在边缘情况下会导致相当多的并发症,例如,如果一个slug在多个contenttype中可用,如何操作,或者后端是否应允许某些contenttype生成相同的slug。

Silex/Symfony中的路由是基于正则表达式的,匹配是二进制的,不幸的是,一旦路由匹配,那么这是唯一将运行的路由,因此,为什么第一条路由匹配,而第二条路由被忽略

没有一种方法可以实现您想要的开箱即用-要实现它,您需要将第一个匹配指向您自己的控制器方法,而不是默认的
控制器。前端:录制
,在您自己的方法中,您可以循环浏览您想要支持的内容类型,并继续查找,直到找到匹配的slug无论内容类型如何

Bolt无法将此作为标准功能来支持,因为它在边缘情况下会导致相当多的复杂性,例如,如果一个段塞在多个contenttype中可用,如何表现,或者后端是否应允许某些contenttype生成相同的段塞