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
。是的,没错,我忘了这一点,我将立即编辑它。