【问题标题】:Call to undefined method App\User::givePermissionTo()调用未定义的方法 App\User::givePermissionTo()
【发布时间】:2021-09-15 20:00:50
【问题描述】:

我正在使用 laravel spatie 包获取角色权限,但出现此错误,这是我的代码

$user = User::find(1);
$user->givePermissionTo('manager_product_create');

【问题讨论】:

  • 究竟是什么问题
  • @Vinayak 阅读标题...这是他们在使用此代码时遇到的错误。
  • 包含此代码 {use Illuminate\Foundation\Auth\User as Authenticatable;使用 Spatie\Permission\Traits\HasRoles;} 这是功能代码{use HasRoles;公共函数 check(){ $user = User::find(1); $user->givePermissionTo('manager_product_create'); }}

标签: php laravel laravel-permission


【解决方案1】:

您可能忘记将 trait 添加到 User 类:

use Illuminate\Foundation\Auth\User as Authenticatable;
use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable
{
    use HasRoles;

    // ...
}

https://spatie.be/docs/laravel-permission/v3/basic-usage/basic-usage

【讨论】:

  • 基本使用不检测问题,直接使用检测问题spatie.be/docs/laravel-permission/v3/basic-usage/…
  • 同样的问题是代码使用 App\User;使用 Illuminate\Foundation\Auth\User 作为 Authenticatable;使用 Spatie\Permission\Traits\HasRoles;类 CheckController 扩展控制器 { 使用 HasRoles;公共函数 check(){ $user = User::find(1); $user->givePermissionTo('manager_product_create'); } }
  • 该特征包含givePermissionTo 之类的方法,因此您必须将其添加到您的User 模型中,而不是您使用它的类(控制器)中。
  • 如果您打算只使用权限:use Spatie\Permission\Traits\HasPermissions;
猜你喜欢
  • 2020-02-02
  • 1970-01-01
  • 2022-12-09
  • 2021-06-21
  • 2020-01-18
  • 1970-01-01
  • 2023-02-06
  • 2021-03-19
  • 2021-06-24
相关资源
最近更新 更多