Php 无脂肪框架路由无法区分参数和URI

Php 无脂肪框架路由无法区分参数和URI,php,routing,fat-free-framework,Php,Routing,Fat Free Framework,我试图为所有类别、子类别和单个页面创建适当的路由 我的问题是,我的子目录路由和单页路由非常相同: 路线 categories控制器处理与类别和子类别相关的所有需要处理的内容,但显然不会处理与单个页面相关的任何内容。我的意思是,路由不会区分参数和URI,也不会识别它是子类别还是单个页面 GET /@category_slug/@slug = CategoryController->GuessSubcategoryOrSinglePage 下面是一个示例URI example.com/Mai

我试图为所有类别、子类别和单个页面创建适当的路由

我的问题是,我的子目录路由和单页路由非常相同:

路线 categories控制器处理与类别和子类别相关的所有需要处理的内容,但显然不会处理与单个页面相关的任何内容。我的意思是,路由不会区分参数和URI,也不会识别它是子类别还是单个页面

GET /@category_slug/@slug = CategoryController->GuessSubcategoryOrSinglePage
下面是一个示例URI

example.com/MainCategory/Subcategory
example.com/MainCategory1/Subcategory1
example.com/MainCategory/SinglePage1
example.com/MainCategory/SsinglePage2 
你知道怎么解决这个问题吗


提前感谢

框架无法区分这两条路线的原因与人类相同。您如何知道
/foo/bar
是子类别还是子页面

因此,您必须在URL结构中明确区分。这取决于你的想象。以下是几个例子:

例1:

  • /foo
  • /foo/bar
  • /foo/bar/page/baz
例2:

  • /cat/foo
  • /cat/foo/bar
  • /page/baz
例3:

  • /foo
  • /foo/c/bar
  • /foo/p/baz
例4:

  • /foo
  • /foo/bar

  • /foo/baz.html
    框架无法区分这两条路线的原因与人类相同。您如何知道
    /foo/bar
    是子类别还是子页面

    因此,您必须在URL结构中明确区分。这取决于你的想象。以下是几个例子:

    例1:

    • /foo
    • /foo/bar
    • /foo/bar/page/baz
    例2:

    • /cat/foo
    • /cat/foo/bar
    • /page/baz
    例3:

    • /foo
    • /foo/c/bar
    • /foo/p/baz
    例4:

    • /foo
    • /foo/bar

    • /foo/baz.html
      我将创建一个路由处理程序,它实际上知道所有子类别和单个页面,并且只显示正确的一个。我也没有想到其他方法,但是有超过16个类别和35个子类别。要么改变页面的url结构,要么创建路由处理程序。我想F3在这里帮不了你。我目前正在做的是当controller在DB中搜索子域段塞并返回一个空数组时,作为下一步,我将调用另一个类,该类的方法采用2个参数类别和单页,负责为我获取单页数组,但不确定这是否是正确的方法,我会创建一个路由处理程序,它实际上知道所有子类别和单个页面,只显示正确的一个。我也没有想到其他方法,但是有超过16个类别和35个子类别。要么改变页面的url结构,要么创建路由处理程序。我想F3在这里帮不了你。我目前正在做的是当controller在DB中搜索子域段塞并返回一个空数组时,作为下一步,我将调用另一个类,该类的方法采用2个参数类别和单页,负责为我获取单页数组,但我不确定这是否是正确的方式谢谢你的深入回答,我认为NB1是我会坚持的东西,我也会坚持你的深入回答,我认为NB1是我也会坚持的东西
      GET /@category_slug/@slug = CategoryController->GuessSubcategoryOrSinglePage