Laravel Spatie Permission 多模型权限

Laravel Spatie Permission Multi Models to Permission

我知道如何给用户分配权限。

class User extends Authenticatable
{
   use HasRoles;
}

$user->givePermissionTo('edit articles');

这样的话,在model_has_permissions中,table会这样插入。

permission_id=> $permission_id
model_type=> "App\Models\User"
model_id=> $user_id

我有团队模型,我也想授予团队权限。 这就是我所做的。

class Teamextends Authenticatable
{
   use HasRoles;
}

$team->givePermissionTo('edit articles');

我想要这个结果,

permission_id=> $permission_id
model_type=> "App\Models\Team"
model_id=> $team_id

但这对我不起作用。 任何人都有上述经验? 我应该再做一个 table 吗? 喜欢 team_has_permission?

我找到了解决方案!

class Team extends Authenticatable
{
   use HasRoles;
   protected $guard_name = 'web';
}

$team->givePermissionTo('edit articles');

这很有效。 在数据库table中,是这样保存的

permission_id=> $permission_id
model_type=> "App\Models\Team"
model_id=> $team_id

真棒!