为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 如何从 api 端点动态地按角色获取用户

Laravel 如何从 api 端点动态地按角色获取用户

PHP
温温酱 2021-11-26 15:46:37
如何根据用户的角色获取用户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();

}


查看完整回答
反对 回复 2021-11-26
?
千巷猫影

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';

}


查看完整回答
反对 回复 2021-11-26
  • 2 回答
  • 0 关注
  • 186 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信