【发布时间】:2016-06-25 20:30:51
【问题描述】:
当我实现了这个 (https://mattstauffer.co/blog/acl-access-control-list-authorization-in-laravel-5-1) 授权 laravel 5.1 教程,我找到了这个的用法
if (Gate::allows('create-contact')) {
redirect('hooray');
}
然后框架显示这个错误
Call to undefined method Illuminate\Auth\Access\Gate::allow()
依赖关系一切正常,所以这不是问题,然后我发现laravel从5.1.11版本开始实现这个方法 在 laravel 的授权文档(laraveldocs/5.1/authorization)的这个主题中 所以 laravel 团队在他们的文档页面中说这个授权功能从 5.1.11 版本开始可用。
我遇到了同样的错误,所以我去了 github 上的 laravel/framework 存储库 (github/laravel/framework/) 从5.1.11版本到5.1.31版本检查,发现源代码中不存在该方法。
从 5.2 版本开始可以使用该门方法
您可以在此处查看 v5.1 (github/laravel/framework/blob/v5.1.31/src/Illuminate/Contracts/Auth/Access/Gate.php) 和 v5.2 (github/laravel /framework/blob/v5.2.0/src/Illuminate/Contracts/Auth/Access/Gate.php)
所以我想和你分享这方面的知识,但是如果你找到了解决方案,而无需升级框架的版本,我会很高兴知道。
谢谢!
【问题讨论】:
-
这只是一个想法(我不是说你应该这样做)但如果你真的不能将整个框架升级到 5.2,你可以拉入 5.2 照明包你需要,即
Illuminate\Authpackagist.org/packages/illuminate/auth#v5.2.0?
标签: php laravel authorization