Slim Framework子路由

时间:2016-03-02 13:47:31

标签: php routing slim slim-3

我想使用Slim Framework v3.2.0的子路由,如下所示:

  • www.test.com/ < - 索引页
  • www.test.com/foodtype/ < - 单独页面
  • www.test.com/foodtype/page/ < - foodtype的子类别

据我了解,只能调用一个。目前我在我的routes.php中有这个:

$app->get('/', function () {
// Load index page
});

$app->get('/{foodtype}', function ($request, $response, $args) {
// Load page based on the value of $args['foodtype'] 
});

如何为page1添加单独的可选路由?

我试过了:

$app->get('/{foodtype}/{page}', function ($request, $response, $args) {
// Load page based on the value of $args['foodtype'] and $args['page']
});

这会导致“找不到页面”错误。我认为我也需要逃避可选的'/'吗?

1 个答案:

答案 0 :(得分:2)

您必须在原始路线中将页面部分设为可选。

如:

$app->get('/{foodtype}', function ($request, $response, $args) {
// Load page based on the value of $args['foodtype'] 
});

变为:

$app->get('/{foodtype}[/{page}]', function ($request, $response, $args) {
// Load page based on the value of $args['foodtype'] and $args['page']
});