[当前正在使用本地服务器上的laravel 6开发一个用于书评的网站。尝试将经过身份验证的用户传递到一种表单时,他可以在其中更改角色,即从“作者”到“编辑器”或从“编辑器”到“读者”,我遇到了问题。
仅出于数据库中的上下文,我有一个用户表,而带有boy的角色表在我的users_roles表中有其ID作为外键。
尝试连接到此视图时遇到以下错误Missing required parameters for [Route: users.update] [URI: admin/users/{user}
:
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">
<img src="{{ asset('/uploads/avatars/' . $user->avatar ) }}" style="width:100px; height:100px; float:left;
margin-right:25px;">
<strong>Edit {{$user->name}}'s Role</strong></div>
<div class="card-body">
<form action="{{ route('users.update', $user)}}" method="POST">
@csrf
{{method_field('PUT')}}
@foreach($roles as $role)
<div class="form-check">
<input type="checkbox" name="roles[]" value="{{$role->id}}">
<label>{{ $role->name }}</label>
@endforeach
<div class="form-group">
<div class="text-centre">
<button type="submit" class="btn btn-success">
Save Role
</button>
</div>
<p></p>
</div>
</div>
</div>
</div>
</div>
我为此使用的路线:
Route::get('/users/edit_role/{id}', 'UserController@edit')->name('choose_role');
最后,我的用户控制器编辑方法如下所示:
public function edit(User $user)
{
$roles = Role::all();
return view('admin.users.choose_role')->with([
'user' => $user,
'roles' => $roles
]);
}
我已经做了很长一段时间了,我开始获得隧道视野。非常感谢您的帮助!
要将路由参数传递给路由,请使用关联数组进行操作,您需要键入该值,因为它不知道应填充哪个路由参数。
{{ route('users.update', ['key' => $user]) }}