在laravel中不使用表单删除记录

Posted

技术标签:

【中文标题】在laravel中不使用表单删除记录【英文标题】:Delete a record without using form in laravel 【发布时间】:2017-02-14 19:50:01 【问题描述】:

需要在不使用表单标签的情况下删除记录。只需在 url 中传递一个 id 并获取一个需要处理的 id。

谢谢

【问题讨论】:

请添加一些附加信息。 【参考方案1】:

按照以下步骤进行

HTML

<a href="#" thisRecordId="$id" id="btnDelete">Delete</a>

JS

$('a#btnDelete').on('click',function()
   
    var thisElement = $(this);

    $.ajax(
        type: 'post',
        url: "url('/')" + '/deleteRecord/'+thisElement.attr('thisRecordId'),
        data : '_token': '!! csrf_token() !!',
        async: false,
        success:function(response)
        
            console.log(response)
        
    );
);

路线

Route::post('deleteRecord/id','YourController@deleteRecord');

控制器

public function deleteRecord($id)

    $findRecord = ModelName::findOrFail($id);
    $findRecord->delete();

    return 'success';

希望您能找到解决方案!

【讨论】:

【参考方案2】:

这样试试

<a type="button" class="label label-danger" href="/user/delete/$user->id">Delete</a>

控制器方法

public function getDelete($id)

 echo $id;

【讨论】:

这实际上有点“危险”,因为 Laravel 不会检查 CSRF 令牌... 非常糟糕......任何人都可以用这种方法删除它......你甚至不必在页面上,你只需在地址栏中输入路线,它就会被删除跨度> 是的......你是对的......在这种情况下,我们可以检查身份验证登录和用户权限......我只是简单地给出一个解决方案......

以上是关于在laravel中不使用表单删除记录的主要内容,如果未能解决你的问题,请参考以下文章

软删除laravel 5中表中的所有记录

Laravel 软删除:model::onlyTrashed() 返回所有

Laravel 不删除记录

删除子表单记录

使用 AJAX 在 Laravel 5.3 中删除记录

Laravel dosent 通过 ajax 删除记录?