我已经设置了我的模型 政策 </跨度> 当我从内部授权行动时,它似乎正在起作用 调节器 </跨度> 动作。
//创建动作公共功能create(){ $ this-&gt; authorize(‘create ’,BusinessProfile :: class); return view(‘business-profile.create’);}
该 政策 </跨度> for create只返回true或false,并且切换布尔似乎正在工作,因为我是基于它授权的。
这个
在您需要型号名称时,您似乎使用了模型的别名。在文件中说明:
像create这样的动作可能不需要模型实例。在这些 在这种情况下,您可以将类名传递给中间件。班级 name将用于确定授权时使用的策略 那个行动:
您可以在这里找到更多信息: https://laravel.com/docs/5.4/authorization#policy-methods
所以在控制器构造函数中这一行:
$this->middleware('can:create,BusinessProfile')->only('creat??e');
会变成:
$this->middleware('can:create,App\BusinessProfile')->only('c??reate');