Thinkphp5如何获取当前命中的路由规则?

发布于 2022-09-11 22:57:20 字数 550 浏览 27 评论 0

问:thinkphp5.1如何获取当前命中的路由规则?

首先,定义路由 route.php

Route::post('/clue/:id', 'Clue/updateRecord');

在中间件或者控制器内部我想知道当前命中的是哪个路由,以便进行权限验证。

如这种

echo Route::getCurrentRule();
> /clue/:id

但简单看了下TP的逻辑,在路由规则实例化前就已经转换为
/clue/<id>的形式了,如下图。

image.png

如能获取到/clue/<id>,我自行进行反向正则替换也行。
目前还没有解决办法,一时间没有了解TP的内部处理过程,求各位解答!

又或者根据定义的路由进行动态权限验证也可提供其他方案参考,麻烦了!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

初见 2022-09-18 22:57:20

目前更换为其他方式解决,即通过动态规则匹配当前URI实现权限控制。

Route::post('/clue/:id', 'Clue/updateRecord');

获得当前PATH
echo '/' . $request->path();
> /clue/1

通过正则匹配验证
#^/clue/\d#/is

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文