我正在使用 Laravel 8,并且在 Blade 制作了一张这样的表格:
<div class="card-body table-responsive p-0">
<table class="table table-hover">
<tr>
<th>Username</th>
<th>Email</th>
<th>Role</th>
<th>Actions</th>
</tr>
@foreach($roles as $role)
@if(count($role->users))
@foreach($role->users as $user)
<tr>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
<td>{{ $role->name }} | {{ $role->label }}</td>
<td>
<form action="{{ route('levels.destroy' ,$user->id) }}" method="post">
@method('DELETE')
@csrf
<div class="btn-group btn-group-xs">
<a href="{{ route('levels.edit' ,$user->id) }}" class="btn btn-primary">Edit</a>
<button type="submit" class="btn btn-danger">Delete</button>
</div>
</form>
</td>
</tr>
@endforeach
@endif
@endforeach
</table>
</div>
结果完美显示:
但是现在我遇到了我指定为它们两个参数的编辑和删除按钮的问题。$user->id
当我将鼠标悬停在按钮上时,我可以看到正确定义的用户 ID:
但是当涉及到使用路由模型绑定的编辑方法时,它没有找到用户:
public function edit(User $user)
{
dd($user->id); // return null
}
但是,如果我不使用 Route Model Binding 而是这样说:
public function edit($id)
{
dd($id); // return 1
}
它正确显示了用户ID!
我不知道为什么路由模型绑定在这里不起作用,所以如果您知道出了什么问题或如何解决此问题,请告诉我...