如何在Silex中为路由的slug断言配置多个预定义值?
为Silex路由的slug断言配置多个预定义值
嘿,这个需求其实很容易实现,Silex的assert()方法支持传入正则表达式,我们只要把多个预定义的slug用正则的选择符|拼接起来就行!
具体实现代码
把你原来的断言部分改成这样:
$app->get('/{slug}', function ($slug) use ($app) { // 你的处理逻辑 })->bind('page')->assert('slug', 'about-us|contact|services');
原理说明
- 正则里的
|表示“或”的意思,所以这个规则会匹配about-us、contact或者services这三个值中的任意一个 - 如果之后需要新增更多预定义slug,直接在
|后面追加新值就可以,比如about-us|contact|services|faq - 这样配置后,只有匹配这些指定slug的请求才会进入这个路由处理函数,其他不符合的请求会自动返回404,刚好满足你要限制预定义slug的需求
内容的提问来源于stack exchange,提问作者Louis B
相关产品推荐
相关产品推荐

