如何根据用户的角色获取用户laravel?我有像“管理员”、“作者”、“编辑”这样的角色,我想要一个动态的api端点。所以在我的api.php我有:Route::get('users/{role}', "Api\UserController@role");我的控制器看起来像这样:public function show(){ $user_role = User::whereHas( 'roles', function ($q) { $q->where('name', 'admin'); } )->get(); return $user_role;}到目前为止,这工作正常,但我希望端点是动态的,就像如果希望我的所有编辑器用户都应该是端点api/users/editors等等。我怎样才能做到这一点?
2 回答
哆啦的时光机
TA贡献1779条经验 获得超6个赞
public function show($role) //example: $role = 'admin'
{
return User::whereHas('roles', function ($q) use ($role) {
$q->where('name', $role);
})->get();
}
千巷猫影
TA贡献1829条经验 获得超7个赞
您的控制器功能应如下所示:
public function show(Role $role)
{
$users = $role->users;
return $users;
}
你的 Role Eloquent 模型应该有这些方法:
public function users()
{
return $this->belongsToMany(User::class, 'user_role')
}
public function getRouteKeyName()
{
return 'name';
}
- 2 回答
- 0 关注
- 186 浏览
添加回答
举报
0/150
提交
取消