【发布时间】:2020-11-17 13:20:58
【问题描述】:
我正在做一个 laravel 项目。几乎我在每个控制器中都看到了这些行格式:
!auth()->user()->can('something (differ from each controller to other one)')
但在我的 php 编辑器中,它显示方法 {can} 未找到此对象。所以我尝试找到方法可以但没有找到它。即使我编辑 __Call 魔术方法以查看 can 方法何时调用是否运行魔术函数但我知道它永远不会为 can 函数运行。所以如何将函数链接到对象当它没有在类和它的所有母类中定义时。在哪里可以定位?我搜索,我看到 laravel 有一些授权用户的策略,但我不知道如何在没有用户对象的情况下链接到用户对象 在类中定义,甚至魔术方法都无法运行。我该如何开发这些类型的功能(用于在 laravel 中授权和更改策略)
【问题讨论】:
-
这是因为你的编辑很困惑。代码本身没有问题。
-
或者,您可以在
vendor\laravel\framework\src\Illuminate\Foundation\Auth\Access\Authorizable.php中找到can方法,这是找到can方法的完整路径。在这里你会看到它基本上使用了laravel服务容器 -
是的,我找到了 can 方法。非常感谢。我的 php eidtor 有点困惑。它完全在你的口语路径之内。我也不知道特征。所以我找到 can 方法的努力没有成功.
标签: php laravel class oop laravel-5