Thinkphp5如何获取当前命中的路由规则?
问:thinkphp5.1如何获取当前命中的路由规则?
首先,定义路由 route.php
Route::post('/clue/:id', 'Clue/updateRecord');
在中间件或者控制器内部我想知道当前命中的是哪个路由,以便进行权限验证。
如这种
echo Route::getCurrentRule();
> /clue/:id
但简单看了下TP的逻辑,在路由规则实例化前就已经转换为
/clue/<id>的形式了,如下图。
如能获取到/clue/<id>,我自行进行反向正则替换也行。
目前还没有解决办法,一时间没有了解TP的内部处理过程,求各位解答!
又或者根据定义的路由进行动态权限验证也可提供其他方案参考,麻烦了!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
目前更换为其他方式解决,即通过动态规则匹配当前URI实现权限控制。
Route::post('/clue/:id', 'Clue/updateRecord');
获得当前PATH
echo '/' . $request->path();
> /clue/1
通过正则匹配验证
#^/clue/\d#/is