问题标签 [laravel-permission]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1414 浏览

php - Spatie/Laravel-Permissions:未定义的方法 translationEnabled() 错误

我正在使用以下库的 Laravel 项目:

  • Spatie/Laravel-权限
  • Laravel-背包底座,Crud
  • Laravel-背包/权限管理器

每次,我尝试从管理界面创建新角色或权限时,都会收到以下错误:

调用未定义的方法 Spatie\Permission\Models\Role::translationEnabled()

我已经完成了必要的设置,但似乎无法完成这项工作。

提前致谢!

编辑:

该错误是由该视图的第 1 行上的调用触发的:

https://github.com/Laravel-Backpack/CRUD/blob/master/src/resources/views/form_content.blade.php

0 投票
1 回答
1213 浏览

php - 我无法从 laravel 中的输入值中获取请求值

更新:所以我刚刚发现$request只能得到,input name所以我不得不更改单选框形式,以便input name必须不同

所以我正在使用 laravel 中的角色和权限,并且我正在使用 spatie 包来获取角色和权限https://github.com/spatie/laravel-permission,但我被困在单选框表单中。我试图让管理员可以选择更改其仪表板中的用户角色,但我从单选框获得的值始终是最后一个。

这是我的表格edit.blade.php

这是我的功能UsersController.php

现在$request正在获取input name而不是,value因为名称是相同的,我无法更改它,因为它破坏了我的表单,它得到了最后一个并且它总是注册为user

0 投票
1 回答
1806 浏览

php - 如何在 spatie/laravel-permission 中使用 UUID

我将ramsey/uuid所有项目表用作主键。如何禁用自动增量并允许rolespermissions键可填充?我已经设法在其他桌子上做到了,但我被这两个卡住了。

0 投票
2 回答
1677 浏览

php - 如何使用 spatie/laravel-permission 和 webpatser/laravel-uuid 在 Laravel 中正确实现 UUID?

我有一个 Laravel 5.7 应用程序,使用 spatie/laravel-permission 和模型的普通 ID。我想过渡到使用 UUID,并且我已经采取了 webpatser/laravel-uuid 自述文件中提到的步骤。一切都适用于我自己的模型,例如用户、模型 A、模型 B 等,并且关系似乎很好,但我似乎无法使用 Spatie 的权限使 uuid 工作。

当我想为对象分配角色(和相关权限)时,我收到以下错误。当我尝试注册用户并为他分配角色时会发生这种情况。

正如您在此图中看到的,来自 Spatie 的 role_id 作为整数传输到此查询中。 现在是 342,其他情况类似于 705293

正如您在此图中看到的,来自 Spatie 的 role_id 作为整数传输到此查询中。现在是 342,其他情况类似于 705293

我已经在我的 /app 文件夹中相应地定义了 Uuids.php 特征,并为所有模型(包括 Permission.php 和 Role.php)添加了以下代码:

我知道这适用于任何其他模型和关系,但不适用于 Spatie 的权限,并且似乎 role_id 在内部函数中的转换方式不同(如 assignRole('') 从 36chars 字符串到其他字符串。如果我查询角色或权限我得到了正确的字符串 ID。

我可能会丢失任何东西,或者有人知道解决这个问题的方法吗?

稍后编辑:这是我对 Spatie 的原始迁移:

这是角色和权限如何存储(工作)的示例

在此处输入图像描述

权限也是如此。所以他们的 _id 是正确的。问题出在 Laravel 或 Spatie 中的某个地方,当尝试将角色添加到模型时,它会向数据库发送另一个值。

0 投票
1 回答
2004 浏览

laravel - PermissionDoesNotExist(没有 id 1 的权限)在 spatie 权限包 Laravel 5.6

我正在使用 spatie 权限包。我想为角色分配权限。下面是我在控制器中的方法:

它向我显示异常PermissionDoesNotExist 没有带有 id 的 [permission]1

在此之前,相同的方法正在工作并且权限被分配给角色。但是我在 PermissionTableSeeder 中创建了一些新权限。这样做之后它不起作用。我搜索了很多试图清除缓存但这个异常没有发生任何事情。

PermissionTableSeeder.php

如何解决此错误?

提前致谢!

0 投票
0 回答
1910 浏览

php - Laravel 测试 - UnauthorizedException:用户没有正确的角色

因此,我正在使用 laravel 测试,并且正在为访问用户页面进行测试,我可以在其中查看所有用户并对其进行编辑。在UsersController.php我所做的只有管理员可以访问用户的页面。我从 spatie 插件https://github.com/spatie/laravel-permission使用的角色和权限。我已经进行了测试以检查一个简单的用户是否可以访问用户的页面,这是代码UserTest.php

这是其中的代码,UsersController.php仅允许管理员访问它。

现在,当我尝试运行测试时,它给了我错误

Tests\Feature\UserTest::user_try_to_access_users_page Spatie\Permission\Exceptions\UnauthorizedException:用户没有正确的角色。

在这一行$response = $this->get('/users');

这很好,因为不让用户访问页面,但它应该给出代码 403 而不是错误。感谢您的时间。

0 投票
4 回答
5126 浏览

php - Laravel 5.7 + Spatie 权限 + JWT 身份验证

我正在使用 Laravel 5.7 设置 REST API。为了验证身份验证,我使用JWT-auth并且对于权限和角色,我使用Spatie

我的问题:尝试将角色链接到用户时出现以下错误

该角色确实存在于数据库中: 在此处输入图像描述

这就是我尝试为用户分配角色的方式:

由于我是 Laravel 的新手,我不确定它是否相关,但是设置 JWT 我必须将警卫的驱动程序更改config/auth.phpjwt

我看不出我做错了什么。我添加了角色,然后尝试将角色添加到用户。

0 投票
2 回答
778 浏览

laravel - Laravel 和 spatie/laravel-permission - 将角色名称提取到视图中

我想在 Laravel 中“挑选”角色的视图名称,每个角色都有不同的徽章。

我的代码:

我的结果:

在此处输入图像描述

我在一个跨度类中获得所有角色名称:(感谢您的帮助。

0 投票
3 回答
3577 浏览

laravel - 如何在 Spatie/permission (Laravel) 中获取具有特定权限的角色列表

我正在尝试以与获取具有特定权限的用户列表相同的方式来获取它,但是对于角色它无法正常工作

调用未定义的方法 Spatie\Permission\Models\Role::roles()

我获取具有特定角色的用户列表的方式:

我试图获得具有特定权限的角色的方式:

BadMethodCallException 调用未定义的方法 Spatie\Permission\Models\Role::roles()

0 投票
1 回答
1126 浏览

php - 使用@can() 添加条件后数据表列向左移动

我正在使用带有 HTML 构建器的 yajra datatebles 来显示服务器端。在这里,我必须对特定角色隐藏操作列中的删除按钮。

我正在使用 spatie 权限包并添加@can()以隐藏删除按钮。我的代码如下。

用户数据表.php

下面是我添加条件的操作视图。

usersaction.blade.php

这里的View User , Edit User , Delete User是 laravel spatie 权限包创建的权限。它工作正常,但问题是在数据表视图中,操作列向左移动,右侧留下了太多空白:

在此处输入图像描述

我尝试了另一种方式,如下所示

但我得到相同的结果。我怎样才能解决这个问题?