laravel 如何将模型绑定到Spatie角色?

gk7wooem  于 2023-01-03  发布在  其他
关注(0)|答案(1)|浏览(140)

Spatie laravel permissions中是否可以将特定模型附加到角色?
我需要获取依赖于角色的模型。例如,如果用户具有医生角色,我需要获取医生模型。诊所角色也是如此。

lb3vh1jj

lb3vh1jj1#

如果不知道你是如何建立这个架构的,就很难知道你在寻找什么,但是你可以找到医生......虽然不确定是否直接绑定。
我假设您已经创建了一个Spatie角色并将其分配给了一个Doctor类(我假设它是一个扩展的User或类似的类,* 并且使用HasRoles*):

$role = Role::create(['name' => 'doctor']);

找一个医生,正常分配角色:

$doctor = Doctor::find(xxx);
$doctor->assignRole($role);

我认为以下内容可能会有所帮助:

$role= Role::findByName('doctor');
$roleClass= $role->getModel();

角色为医生的单据

$docs= Doctor::role('doctor')->get();

如果你想区分阶级(医生、用户),您需要在$doc上运行额外的命令(甚至是User::role集合这样的超集),但这取决于你如何设置查询和流程。我不确定Spatie中是否有一个直接的方法可以完全按照你的意愿来做,但是如果您可以接受拉取用户的超集集合,其中可能包括Doctor类,那么您至少可以通过两个步骤来完成。

相关问题