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

Php Laravel如何从api端点动态获取角色用户,php,laravel,api,Php,Laravel,Api,如何根据用户在laravel中的角色获取用户?我有一些角色,比如“管理员”、“作者”、“编辑”,我想有一个动态的api-端点 因此,在我的api.php中,我有: Route::get('users/{role}', "Api\UserController@role"); 我的控制器如下所示: public function show() { $user_role = User::whereHas( 'roles', function ($q) {

如何根据用户在
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;
}
public function show(Role $role)
{
    $users = $role->users;

    return $users;
}
到目前为止,这一切都很好,但我希望端点是动态的,比如如果希望我的所有编辑器用户,那么端点应该是
api/users/editors
等等


如何实现这一点?

您的控制器功能应如下所示:

public function show()
{
    $user_role = User::whereHas(
        'roles',
        function ($q) {
            $q->where('name', 'admin');
        }
    )->get();

    return $user_role;
}
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;
}
你的口才榜样应该有以下方法:

public function users()
{
   return $this->belongsToMany(User::class, 'user_role')
}

public function getRouteKeyName()
{
    return 'name';
}

控制器功能应如下所示:

public function show()
{
    $user_role = User::whereHas(
        'roles',
        function ($q) {
            $q->where('name', 'admin');
        }
    )->get();

    return $user_role;
}
public function show(Role $role)
{
    $users = $role->users;

    return $users;
}
你的口才榜样应该有以下方法:

public function users()
{
   return $this->belongsToMany(User::class, 'user_role')
}

public function getRouteKeyName()
{
    return 'name';
}

回答得好,但我认为他需要通过多个角色。@mare96问题中没有暗示他希望同时选择多个角色。修正了你的答案。这太完美了!非常感谢:-)回答得好,但我认为他需要通过多个角色。@mare96问题中没有暗示他希望同时选择多个角色。修正了你的答案。这太完美了!非常感谢:-)在这种情况下,您需要自定义路由绑定,因为否则Laravel将尝试根据URL参数
{Role}
@Namoshek中给定的
id
解析
角色
。是的,我忘了这一点,我将立即编辑它。在这种情况下,您需要自定义路由绑定,因为否则,Laravel将尝试根据URL参数
{Role}
@Namoshek中给定的
id
解析
Role
。是的,没错,我忘了这一点,我将立即编辑它。