Php 到控制器的Laravel route pass变量不相同

Php 到控制器的Laravel route pass变量不相同,php,laravel,Php,Laravel,我发现了一个不同的错误。我试图按id删除这本书。 例如,我有数据 -------------- | id | name | -------------- | 1 | book1 | | 2 | book2 | | 3 | book3 | 因此,当我删除id为2的书籍时,控制器总是收到id为3的书籍。 当我试图删除id 1时,情况依然如此,控制器获得id 3(始终是最后一条记录) 这是一把刀片 @foreach($datas as $data) <a href="# {{ $dat

我发现了一个不同的错误。我试图按id删除这本书。 例如,我有数据

--------------
| id |  name |
--------------
| 1  | book1 |
| 2  | book2 |
| 3  | book3 |
因此,当我删除id为2的书籍时,控制器总是收到id为3的书籍。 当我试图删除id 1时,情况依然如此,控制器获得id 3(始终是最后一条记录)

这是一把刀片

@foreach($datas as $data)
<a href="# {{ $data->id }}"
   onclick="event.preventDefault();
   document.getElementById('remove-form').submit();"
  rel="tooltip" title="Hapus" class="btn btn-danger">
</a>

<form id="remove-form" action="{{ url('/dashboard/book/delete/'. $data->id) }}" method="post">
    {{ csrf_field() }}
    {{ method_field('DELETE') }}
</form>
@endforeach
这个控制器

public function index()
    {
        $datas = Book::all();
        return view('backend.bookview', compact('datas'));
    }
public function destroy($id)
{
    Book::where('id', $id)->delete();
    return redirect('/dashboard/book')->with('ok', translate('back/book.destroyed'));
}

更新

在一个html页面上不能有多个id
remove form
。而是使用如下类:

@foreach($datas as $data)
    <div class="delete-block">
        <a href="# {{ $data->id }}"
          rel="tooltip" title="Hapus" class="btn btn-danger delete-btn">
        </a>

        <form class="remove-form" action="{{ url('/dashboard/book/delete/'. $data->id) }}" method="post">
            {{ csrf_field() }}
            {{ method_field('DELETE') }}
        </form>
    </div>
@endforeach
$(函数(){
$('.delete btn')。在('click',函数(e)上{
e、 预防默认值();
console.log($(this).closest('.delete block').find('form').attr('action'));
//$(this).closest('.delete block').find('form').submit();
});
});

发生这种情况是因为
文档.getElementById('remove-form').submit()
始终选择最后一个具有
id的表单

因此,将其更改为以下代码,它将起作用:

@foreach($datas as $data)
    <form method="POST" action="{{ url('/dashboard/book/delete/'. $data->id) }}"  style="display: inline-block;">
        {{ csrf_field() }}
        {{ method_field('DELETE') }}
        <button onclick="return confirm('Do you really want to delete this item?');" type="submit" class="btn btn-danger" data-original-title="Delete Item" data-toggle="tooltip" data-placement="top" title="">
            Delete
        </button>
    </form>
@endforeach
@foreach($data作为$data)
{{csrf_field()}}
{{method_field('DELETE')}
删除
@endforeach

但是当到达控制器时,我在路由上传递的id参数,参数id变成最后一条记录的id Dashboard/book/delete/2将在控制器接收销毁(3)中销毁,我感到困惑,先生,等等,我正在更新我的答案!是的,先生,我有一张支票。谢谢您的关注
$(function() {

    $('.delete-btn').on('click', function(e) {
        $(this).closest('.delete-block').find('form').submit();
    });

});
@foreach($datas as $data)
    <form method="POST" action="{{ url('/dashboard/book/delete/'. $data->id) }}"  style="display: inline-block;">
        {{ csrf_field() }}
        {{ method_field('DELETE') }}
        <button onclick="return confirm('Do you really want to delete this item?');" type="submit" class="btn btn-danger" data-original-title="Delete Item" data-toggle="tooltip" data-placement="top" title="">
            Delete
        </button>
    </form>
@endforeach