首页 > 解决方案 > foreach laravel 总是将最新迭代对象的属性以 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

标签: phplaravel

解决方案


这可能是因为您的页面中有另一个 $posts 变量或类似的东西。我建议您在foreach中选择另一个名称,例如$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>
@endforeach

推荐阅读