当用户单击post的删除按钮时,我想将每个帖子的id发送到服务器,但是在下面的代码中,当用户单击删除按钮时,最新的帖子id总是发送到后端,如何解决?
@foreach($allPosts as $key => $posts)
.
.
.
<td class="filterable-cell">
<a href="{{ route('posts.edit', ['id' => $posts->id]) }}" class="btn btn-edit btn-edit-remove"><i class="fa fa-pencil"></i></a>
<form class="inline" **action="{{ route('posts.destroy', $posts->id ) }}"** method="post" id="formDelete">
{{csrf_field()}}
<input name="_method" type="hidden" value="DELETE">
<button class="delete-brand btn btn-remove btn-edit-remove border-box deletePage" type="submit"><i class="glyphicon glyphicon-trash top-3"></i></button>
</form>
</td>
.
.
.
@endforeach发布于 2018-05-12 19:17:50
如果使用的是资源控制器,则应该使用delete请求。
<form method="POST" action="{{ route('posts.destroy', $posts->id)}}">
{{ csrf_field()}}
{{ method_field('DELETE')}}
<button class="delete-brand btn btn-remove btn-edit-remove border-box deletePage" type="submit"><i class="glyphicon glyphicon-trash top-3"></i></button>
</form>使用此方法,只需按以下方式调用delete
public function destroy(Post $post)
{
$post->delete();
}这对我来说很好。
您的表单上有id's a;因为这些都在foreach循环中,所以您将有多个具有相同Id的表单。这会给你带来麻烦的。
这是一个很好的方法,那就是把帖子id附加到你的id名上。
<form id="buttonID{{ $posts->id }}">另外,由于这是一个前瞻,所以最好使用单数名称,如$post
@foreach($allposts as $post)发布于 2018-05-12 19:12:12
这可能是因为您的页面中有另一个$posts变量或类似的东西。我建议你在你的前额选择另一个名字,比如$Post
@foreach($allPosts as $key => $Post)
.
.
.
<td class="filterable-cell">
<a href="{{ route('posts.edit', ['id' => $Post->id]) }}" class="btn btn-edit btn-edit-remove"><i class="fa fa-pencil"></i></a>
<form class="inline" **action="{{ route('posts.destroy', $Post->id ) }}"** method="post" id="formDelete">
{{csrf_field()}}
<input name="_method" type="hidden" value="DELETE">
<button class="delete-brand btn btn-remove btn-edit-remove border-box deletePage" type="submit"><i class="glyphicon glyphicon-trash top-3"></i>
</button>
</form>
</td>
@endforeachhttps://stackoverflow.com/questions/50309283
复制相似问题