如何在Laravel的Gates中使用@can指令校验两个权限,任意满足即通过?
实现方案
Laravel 有两种主流实现方式,可根据你的项目版本选择:
- 「推荐」使用原生
@canany指令(Laravel 5.6+ 支持)
该指令就是官方为多权限或判断设计的语法,直接传入权限数组即可,写法最简洁:
@canany(['view-post', 'publish-post']) // show publish page @endcanany
- 兼容低版本的Gate判断写法
如果你的项目版本低于5.6不支持@canany,可以直接调用Gate门面的check方法实现逻辑或:
@if(Gate::check('view-post') || Gate::check('publish-post')) // show publish page @endif
注:如果Blade中没有全局引入Gate门面,可写完整命名空间\Illuminate\Support\Facades\Gate
内容的提问来源于stack exchange,提问作者The Ngere
相关产品推荐
相关产品推荐

