Thinkphp如何跨控制器判断方法是否存在呢?

发布于 2022-09-04 17:29:26 字数 270 浏览 19 评论 0

1.问题:
当前做了一个权限判断的class根据用户访问的时候访问的模块 控制器 方法来判断用户是否有权限进入
当然 这部分是做好的 但是出现一个问题
在用户访问一个不存在的方法的时候 权限控制器拒绝了访问 但是我们想的是触发_empty 而不是触发拒绝访问
也就是我们需要在权限控制class判断那个方法是否存在 但是使用A方法初始化使用method_exists判断时候会触发该控制器的构造方法 或出现无限次循环的情况发生
那么请问还有其他方法可以做到在A控制器判断B控制器是否存在B方法么?

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

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

发布评论

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

评论(1

寂寞陪衬 2022-09-11 17:29:26

不是很理解你说的初始化B类出现无限循环的问题
给个思路,是否可以用PHP的反射类
ReflectClass, 初始化只要传入类的命名空间+类名就行了

比如

$r = new ReflectionClass('App\Core\Singleton'); 

然后这个类有个, 方法叫hasMethod, 存在返回true, 不存在返回false
希望可以帮助到你

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