Silex路由可互换参数

时间:2016-05-05 20:13:29

标签: silex

鉴于我有一个必须接受对象的代码或id的路由,在silex中是否有任何方法可以检测哪个传递给路由(数字或非数字)然后发送一个变量还是其他的?

EG。 / route / 1 - >数据库中的美国ID

我将$ id = 1和$ code = null发送到控制器

/ route / US - >数据库上的美国代码

我发送$ id = null和$ code ='美国'到控制器

我尝试过类似的东西,但它不会工作

$apiRoutesV2
    ->get('/route/{code}{id}', 'controllers.myController:getIndex')
    ->value('id', null)
    ->assert('id', '[0-9]+')
    ->value('code', null)
    ->assert('code', '[a-zA-Z]+');

1 个答案:

答案 0 :(得分:1)

如果id和code都可以为空,则可以使用默认值创建一个路径:

C

如果要填充其中一个参数,请添加2条路线:

$app
    ->get('/route/{code}{id}', 'controllers.myController:getIndex')
    ->value('id', '')
    ->assert('id', '[0-9]*')
    ->value('code', '')
    ->assert('code', '[a-zA-Z]*');
相关问题