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

如何根据用户的角色获取用户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等等。


我怎样才能做到这一点?


温温酱
浏览 187回答 2
2回答

哆啦的时光机

public function show($role) //example: $role = 'admin'{    return User::whereHas('roles', function ($q) use ($role) {        $q->where('name', $role);    })->get();}

千巷猫影

您的控制器功能应如下所示: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';}
打开App,查看更多内容
随时随地看视频慕课网APP