php - 拉拉维尔。在foreach循环中将不正确的参数传递给destroy()
问题描述
我正在使用 Laravel 5.6.26。当我尝试通过将 id 发送到 destroy() 来删除特定帖子时,它会在刀片上显示正确的 id。但是当我在 PostsController dd($id) 时,它显示不同的 id。为什么?谁能给我解释一下?谢谢!
主页.blade.php
@foreach($posts as $post)
<div class="jumbotron" style="background-color:#b3e0ff">
<div class="btn-group float-right">
<span class="btn btn-default dropdown-toggle " data-toggle="dropdown">
</span>
<ul class="dropdown-menu" role="menu" id="{{$post->id}}">
<li><a href="#">Edit</a></li>
<li>
<a href="#" onclick="
var result = confirm('Are you sure you wish to delete this {{$post->id}}?');
if( result ){
event.preventDefault();
document.getElementById('delete-form').submit();
} "> Delete
</a>
<form id="delete-form" action="{{ route('posts.destroy',['$id'=> $post->id]) }}" method="POST" style="display: none;">
<input type="hidden" name="_method" value="delete">
{{ csrf_field() }}
{{ method_field('DELETE') }}
</form>
</li>
</ul>
</div>@endforeach {{ $posts->links() }}
刀片警报
PostsController.php
public function destroy($id)
{
//
dd($id);
}
dd
但是当我尝试将路由参数修改为此
route('posts.destroy',['$id'=> 5]) }}
我在 PostsController 得到了正确的 dd 5。
网页.php
Route::resource('posts', 'PostsController');
解决方案
问题解决了。我没有得到正确的id,只需要修改这个
delete-form
对此
delete-form_{{$post->id}}
推荐阅读
- c# - 如何为 AsyncCircuitBreakerPolicy 捕获 CircuitState
- jquery - 向 jQuery Datatables 添加新行正在将货币字符串 $0.00 更改为数字 0
- python - 根据自定义要求重塑数据框
- solr - Solr:如何提升某些文件类型的查询结果
- machine-learning - 在 XGboost 中呈现数字分类数据(特别是一天中的小时)变量的正确方法是什么?
- blockchain - 寻找一个允许我创建自己的区块链的项目
- reactjs - 基于 Typescript 的 React:importScripts() 给出:'importScripts' 未定义 no-undef
- python - 在 Python 中使用贝叶斯定理求解概率
- performance - 代码优先方法实体框架核心中的表不加fk对性能更好吗
- ios - Date() 显示错误的时间