首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >foreach laravel总是将最近的迭代对象的属性以post形式作为路由的一个参数

foreach laravel总是将最近的迭代对象的属性以post形式作为路由的一个参数
EN

Stack Overflow用户
提问于 2018-05-12 18:08:34
回答 2查看 42关注 0票数 0

当用户单击post的删除按钮时,我想将每个帖子的id发送到服务器,但是在下面的代码中,当用户单击删除按钮时,最新的帖子id总是发送到后端,如何解决?

代码语言:javascript
复制
@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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-12 19:17:50

如果使用的是资源控制器,则应该使用delete请求。

代码语言:javascript
复制
<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

代码语言:javascript
复制
public function destroy(Post $post)
{
    $post->delete();
}

这对我来说很好。

您的表单上有id's a;因为这些都在foreach循环中,所以您将有多个具有相同Id的表单。这会给你带来麻烦的。

这是一个很好的方法,那就是把帖子id附加到你的id名上。

代码语言:javascript
复制
<form id="buttonID{{ $posts->id }}">

另外,由于这是一个前瞻,所以最好使用单数名称,如$post

代码语言:javascript
复制
@foreach($allposts as $post)
票数 0
EN

Stack Overflow用户

发布于 2018-05-12 19:12:12

这可能是因为您的页面中有另一个$posts变量或类似的东西。我建议你在你的前额选择另一个名字,比如$Post

代码语言:javascript
复制
@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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50309283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档