鉴于我有一个必须接受对象的代码或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]+');
答案 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]*');