我的功能是删除与我想要的那一行不同的行,Laravel 5.4?

时间:2017-04-26 19:41:16

标签: laravel laravel-5 laravel-5.4

当我按删除时,它会删除数据库中属于当前用户的最后一个慈善机构。

查看(删除按钮):

<a href="#"> <button class="btn btn-danger pull-right btnPopover" data-
toggle="popover" data-placement="top"> Remove </button> </a>

视图(被调用的JS):

function ConfirmDelete()
{
    true;
}

$(document).ready(function()
{
    $('.btnPopover').popover(
    {
        html: 'true',
        title: '<strong> Are you sure you want to Remove? </strong>',
        content: '<form style="display: inline;" action="{{ 
        URL::to('remove', array($favourite->id)) }} "> <button class = "btn 
        btn-success glyphicon glyphicon-ok" onclick="return 
        ConfirmDelete()"> Yes </button> </form> <button class = "btn btn-
        danger glyphicon glyphicon-remove"> No </button> '
    });

    $('.btnPopover').on('click', function (e)
    {
        $('.btnPopover').not(this).popover('hide');
    });

路线: Route::get('remove/{id}', 'HomeController@removeFavourite');

Controller(removeFavourite函数):

public function removeFavourite($id)
{
    Favourites::where('id', $id)->delete();

    Session::flash('flash_message', 'Removed successfully!');
    return back();
}

奇怪的是,我在应用程序的另一部分使用完全相同的函数和JS调用,它工作正常!

问题是,它删除了数据库中属于该用户的最后一条记录。

由于

3 个答案:

答案 0 :(得分:1)

我不确切地知道你的代码是什么样的,但问题是你的JS只对循环的最后一次迭代有效,这听起来像你正在经历的那样。

要修复它,您可以在弹出窗口按钮内移动表单,以便获得正确的表单链接:

示例(移动表单):

<a href="#"> <button class="btn btn-danger pull-right btnPopover" data-toggle="popover" data-placement="top" data-content='<form style="display: inline;" action="{{ URL::to('remove', array($favourite->id)) }} "> <button class = "btn btn-success glyphicon glyphicon-ok" onclick="return ConfirmDelete()"> Yes </button> </form> <button class = "btn btn-danger glyphicon glyphicon-remove"> No </button> '> Remove </button> </a>

JS:

$(document).ready(function()
{
    $('.btnPopover').popover(
    {
        html: 'true',
        title: '<strong> Are you sure you want to Remove? </strong>',
    });

    $('.btnPopover').on('click', function (e)
    {
        $('.btnPopover').not(this).popover('hide');
    });

    ....

如果您可以从弹出框中访问父按钮,这可能会更清晰,但我无法在API中找到一种方法。

答案 1 :(得分:0)

检查您在程序中检索的$ id(我假设在查找$ id的问题中缺少某些代码)是您要删除的。

答案 2 :(得分:-1)

级官方文档说使用以下代码删除模型:

$flight = App\Flight::find(1);

$flight->delete();

查找检索单个模型,并返回集合,这可能是问题所在。

另外,请确保您传递了需要删除的收藏夹的特定$id,否则您将始终删除循环中的最后一个$id

Official Docs