Метод редактирования отображает форму для редактирования.
/**
* Show the form for editing the specified resource.
*
* @param \App\User $user
* @return \Illuminate\Http\Response
*/
public function edit(User $user)
{
$roles = Role::all();
return view('admin.users.form', [
'roles' => $roles,
'user' => $user
]);
}
Вам необходим метод обновления
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\User $user
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$user = User::find($id);
$user->update($request->all());
$role = Role::findOrFail($request->roles);
$user->syncRoles([$role->id]);
return redirect()->route('users.index');
}
Просмотр
<form action="{{route('users.update', $user->id)}}" method="post">
@csrf
@method('PUT')
<select class="custom-select" name="roles">
@if ($roles)
@foreach($roles as $role)
<option {{ ((old('roles') == $role->id) or (isset($user) and $user->roles->pluck('id')->contains($role->id)) ) ? 'selected' : null }} value="{{$role->id}}">{{$role->display_name}}</option>
@endforeach
@endif
</select>
</form>