我看到你已经在迁移中添加了这个列,所以现在你需要在
分配角色
方法
空间许可
通过添加
有角色
性格特征
使用者
模范班。
这就是这种特质的完整路径-
use Spatie\Permission\Traits\HasRoles;
为了实现你的愿望
分配角色
方法,您只需从
有角色
然后根据这个代码创建你自己的特征。你可以在这个特征中看到方法-
public function assignRole(...$roles)
{
$roles = collect($roles)
->flatten()
->map(function ($role) {
if (empty($role)) {
return false;
}
return $this->getStoredRole($role);
})
->filter(function ($role) {
return $role instanceof Role;
})
->each(function ($role) {
$this->ensureModelSharesGuard($role);
})
->map->id
->all();
$model = $this->getModel();
if ($model->exists) {
$this->roles()->sync($roles, false);
$model->load('roles');
} else {
$class = \get_class($model);
$class::saved(
function ($object) use ($roles, $model) {
static $modelLastFiredOn;
if ($modelLastFiredOn !== null && $modelLastFiredOn === $model) {
return;
}
$object->roles()->sync($roles, false);
$object->load('roles');
$modelLastFiredOn = $object;
});
}
$this->forgetCachedPermissions();
return $this;
}
在该方法中进行所需的更改,并使用
风俗
而不是使用空间的
哈斯罗
特质
或者,也可以从中重写该方法
有角色
在你的课堂上,哪种方式更容易,更受欢迎。