40 lines
941 B
PHP
40 lines
941 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace app\admin\controller;
|
||
|
|
|
||
|
|
use support\Request;
|
||
|
|
use app\model\User;
|
||
|
|
use app\admin\model\Role;
|
||
|
|
|
||
|
|
class UserController
|
||
|
|
{
|
||
|
|
// 获取用户角色列表
|
||
|
|
public function roles(Request $request, $id)
|
||
|
|
{
|
||
|
|
$user = User::with('roles')->findOrFail($id);
|
||
|
|
$allRoles = Role::all();
|
||
|
|
|
||
|
|
return json([
|
||
|
|
'code' => 0,
|
||
|
|
'data' => [
|
||
|
|
'user' => $user,
|
||
|
|
'all_roles' => $allRoles,
|
||
|
|
'assigned_roles' => $user->roles->pluck('id')->toArray()
|
||
|
|
]
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
// 更新用户角色
|
||
|
|
public function updateRoles(Request $request, $id)
|
||
|
|
{
|
||
|
|
$request->validate([
|
||
|
|
'roles' => 'required|array',
|
||
|
|
'roles.*' => 'exists:roles,id'
|
||
|
|
]);
|
||
|
|
|
||
|
|
$user = User::findOrFail($id);
|
||
|
|
$user->roles()->sync($request->input('roles'));
|
||
|
|
|
||
|
|
return json(['code' => 0, 'msg' => '角色更新成功']);
|
||
|
|
}
|
||
|
|
}
|