Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >如何使用laravel spatie包检查if语句中的多个权限条件?

如何使用laravel spatie包检查if语句中的多个权限条件?
EN

Stack Overflow用户
提问于 2018-08-17 00:38:12
回答 3查看 2K关注 0票数 1

我需要在if语句中检查多个权限的条件。它使用的是来自laravel的spatie包。我使用下面的代码,但它似乎不起作用。它可以显示输出,但输出不正确。它不会过滤条件。

代码语言:javascript
代码运行次数:0
复制
if (auth()->user()->can('View Consultant') || auth()->user()('View Administration') 
|| auth()->user()('View Accountant') || auth()->user()('All departments')) 
 {

        $itemregistrations = DB::table('itemregistrations')
                             ->where('categoryid','=', '1',',','2',',','3')
                             ->get();

        return view('profil.index', compact('itemregistrations'));

 } 

代码是否正确?

条件是有权限(查看顾问、查看管理、查看会计、所有部门)的用户可以查看所有部门的顾问、管理、会计列表。

对于有权限的用户(仅限查看顾问),只能查看顾问列表。

EN

回答 3

Stack Overflow用户

发布于 2018-12-17 16:05:45

根据文档,

您可以检查用户是否具有以下权限数组中的任何一个:

代码语言:javascript
代码运行次数:0
复制
$user->hasAnyPermission(['edit articles', 'publish articles', 'unpublish articles']);

因此,您可以执行以下操作来检查多个条件。

代码语言:javascript
代码运行次数:0
复制
if (auth()->user()->hasAnyPermission(['View Consultant', 'View Administration', 'View Accountant', 'All departments']) 
 {
        $itemregistrations = DB::table('itemregistrations')
                             ->where('categoryid','=', '1',',','2',',','3')
                             ->get();

        return view('profil.index', compact('itemregistrations'));

 } 
票数 3
EN

Stack Overflow用户

发布于 2019-12-19 09:13:14

如果您需要检查模型是否拥有所有权限,则应该使用方法hasAllPermissions()。例如:

代码语言:javascript
代码运行次数:0
复制
if (\Auth::user()->hasAllPermissions('View Consultant', 'View Administration', 'View Accountant', 'All departments')) {
    // do something
} 
票数 1
EN

Stack Overflow用户

发布于 2021-04-26 13:29:12

可以有两种使用方式。单个控件如下所示。

代码语言:javascript
代码运行次数:0
复制
@can('edit articles')
  //
@endcan

多个控件如下。

代码语言:javascript
代码运行次数:0
复制
@if(auth()->user()->can('edit articles') && auth()->user()->can('edit uploads'))
  //
@endif
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51886986

复制
相关文章
使用MyBatis对表执行CRUD操作
  需要说明的是,我们不需要针对UserMapperI接口去编写具体的实现类代码,这个具体的实现类由MyBatis帮我们动态构建出来,我们只需要直接拿来使用即可。
Isaac Zhang
2019/09/11
4140
MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
一、使用MyBatis对表执行CRUD操作——基于XML的实现 1、定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0" encodi
一枝花算不算浪漫
2018/05/18
6670
MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
http://www.cnblogs.com/xdp-gacl/p/4262895.html
bear_fish
2018/09/19
3260
SpringMvc(三)- CRUD
原理:在数据模型中添加一个 参数名为 command 的参数,springMvc的form表单会自动映射;
化羽羽
2022/10/28
4260
使用PreparedStatement实现CRUD操作
数据库连接被用于向数据库服务器发送命令和 SQL 语句,并接受数据库服务器返回的结果。其实一个数据库连 接就是一个Socket连接。 在 java.sql 包中有 3 个接口分别定义了对数据库的调用的不同方式:
一个风轻云淡
2022/11/15
4900
使用PreparedStatement实现CRUD操作
mybatis中crud操作范例
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0
Gxjun
2018/03/27
1.9K0
执行CRUD总结
?
wfaceboss
2019/04/08
3630
执行CRUD总结
SpringMVC的视图
SpringMVC中的视图是View接口,视图的作用渲染数据,将模型Model中的数据展示给用户
一个风轻云淡
2022/11/13
3730
SpringMVC的视图
SpringMVC视图nternalResourceView
SpringMVC 是一个流行的 Web 框架,它提供了一种强大的机制来处理 HTTP 请求和响应。在 SpringMVC 中,视图是用来生成响应的一部分。SpringMVC 视图包括多种类型,其中 InternalResourceView 是一种基于 JSP 的视图类型。
堕落飞鸟
2023/05/13
3250
SpringMVC:SpringMVC执行流程
作用:在DispatcherServlet的控制下Handler对具体的用户请求进行处理
愷龍
2023/02/27
5980
SpringMVC:SpringMVC执行流程
SpringMVC视图ThymeleafView(二)
在 SpringMVC 中,我们需要创建视图来呈现响应内容。对于 Thymeleaf 视图,我们可以使用 ThymeleafView 来创建。
堕落飞鸟
2023/05/13
2450
springMVC视图转发 总结
在项目中需要视图转发 通常采用如下两种方式: 或者 但是略有区别 如果带有参数 建议使用后面那种 否则会出现404
明明如月学长
2021/08/27
1810
SpringMVC视图ThymeleafView(一)
Thymeleaf 是一种用于 Web 和独立环境的现代服务器端 Java 模板引擎,它能够处理 HTML、XML、JavaScript、CSS 甚至纯文本。在 SpringMVC 中,我们可以使用 Thymeleaf 模板引擎来创建动态 Web 页面。
堕落飞鸟
2023/05/13
3590
webpy中db模块的CRUD操作
这篇文章主要介绍下,如何通过webpy的db模块完成crud操作。一开始觉得webpy的db模块写的太绕了,现在仔细看了源代码之后,发现确实封装的过于多了点,把一个sql语句各种拆。相对于简单的sqlhelper来说——比如tornadb,这个东西复杂了点,对于ORM来说,这东西有简单了点。不过想起最早时我在写vb或者.net的时候自己写sqlhelper也有过此类的想法,把sql语句的各个部分都给封装起来。
the5fire
2019/02/28
6410
SpringMVC视图RedirectView(一)
RedirectView 是 SpringMVC 视图的一种类型,它可以将请求重定向到其他 URL,生成重定向响应。
堕落飞鸟
2023/05/13
6490
SpringMVC视图RedirectView(二)
在上面的代码中,我们首先在 /redirect URL 上创建一个控制器方法,将请求重定向到 /success URL,同时设置一个静态属性 message。然后在 /success URL 上创建另一个控制器方法,用于处理 /redirect 的重定向响应,将 message 属性添加到 ModelAndView 对象中并返回 success 视图。
堕落飞鸟
2023/05/13
1.1K0
使用ORM完成模型的CRUD操作
在了解了Django提供的模型管理平台之后,我们来看看如何从代码层面完成对模型的CRUD(Create / Read / Update / Delete)操作。我们可以通过manage.py开启Shell交互式环境,然后使用Django内置的ORM框架对模型进行CRUD操作。
用户8442333
2021/05/20
7170
8. 使用PreparedStatement实现CRUD操作
在上一篇章我们使用了 PreparedStatement 解决了 SQL 注入问题,那么再具体深入一下,我们来看看 PreparedStatement 如何实现 增删查改 的 操作。
Devops海洋的渔夫
2022/01/17
7080
8. 使用PreparedStatement实现CRUD操作
使用 Mybatis-plus 进行 crud 操作
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
Carlos Ouyang
2019/08/19
3.6K0
SpringMVC(三):SpringMVC执行流程
用户请求到达前端控制器,它就相当于 mvc 模式中的 c,dispatcherServlet 是整个流程控制的中心,由 它调用其它组件处理用户的请求,dispatcherServlet 的存在降低了组件之间的耦合性。
Lansonli
2022/12/27
5200
SpringMVC(三):SpringMVC执行流程

相似问题

在单个视图中对多个表执行CRUD操作

135

如何在Laravel5.5中使用单一视图对所有操作执行CRUD操作?

10

用于在单个请求中执行所有CRUD操作的HTTP方法。

27

如何在EF中执行CRUD操作

13

使用单个部分的所有视图的Rails CRUD按钮

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文