Php 无脂肪框架路由无法区分参数和URI
我试图为所有类别、子类别和单个页面创建适当的路由 我的问题是,我的子目录路由和单页路由非常相同: 路线 categories控制器处理与类别和子类别相关的所有需要处理的内容,但显然不会处理与单个页面相关的任何内容。我的意思是,路由不会区分参数和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
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
/cat/foo
/cat/foo/bar
/page/baz
/foo
/foo/c/bar
/foo/p/baz
/foo
/foo/bar
框架无法区分这两条路线的原因与人类相同。您如何知道/foo/baz.html
是子类别还是子页面 因此,您必须在URL结构中明确区分。这取决于你的想象。以下是几个例子: 例1:/foo/bar
/foo
/foo/bar
/foo/bar/page/baz
/cat/foo
/cat/foo/bar
/page/baz
/foo
/foo/c/bar
/foo/p/baz
/foo
/foo/bar
我将创建一个路由处理程序,它实际上知道所有子类别和单个页面,并且只显示正确的一个。我也没有想到其他方法,但是有超过16个类别和35个子类别。要么改变页面的url结构,要么创建路由处理程序。我想F3在这里帮不了你。我目前正在做的是当controller在DB中搜索子域段塞并返回一个空数组时,作为下一步,我将调用另一个类,该类的方法采用2个参数类别和单页,负责为我获取单页数组,但不确定这是否是正确的方法,我会创建一个路由处理程序,它实际上知道所有子类别和单个页面,只显示正确的一个。我也没有想到其他方法,但是有超过16个类别和35个子类别。要么改变页面的url结构,要么创建路由处理程序。我想F3在这里帮不了你。我目前正在做的是当controller在DB中搜索子域段塞并返回一个空数组时,作为下一步,我将调用另一个类,该类的方法采用2个参数类别和单页,负责为我获取单页数组,但我不确定这是否是正确的方式谢谢你的深入回答,我认为NB1是我会坚持的东西,我也会坚持你的深入回答,我认为NB1是我也会坚持的东西/foo/baz.html
GET /@category_slug/@slug = CategoryController->GuessSubcategoryOrSinglePage