Silex路由通配符

时间:2016-05-24 10:07:07

标签: php silex

我想用Silex做这样的事情:

$app->match('/{page?}/{action?}/{part?}/{detail?}', function() {
});

所以所有4个元素都可以存在,但不需要它。我该如何做到这一点?

2 个答案:

答案 0 :(得分:0)

您需要为参数定义default values以使其可选。

这样的事情应该有效:

$app->match('/{page}/{action}/{part}/{detail}', function() {
})->value('page', 'home')
->value('action', 'index')
->value('part', 'somePart')
->value('detail', 'someDetail');

答案 1 :(得分:0)

这对我有用:

$app->get('/{wildcard}', function ($wildcard) use ($app, $shared) {
    // ...
})
->assert('wildcard', '.+')
->value('wildcard', '');