You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.6:如何通过ID按钮删除数据库行?我的环境说明

在Laravel 5.6中通过ID实现数据库行删除操作的步骤

别担心,我会一步步带你搞定这个删除功能——其实你生成的资源控制器已经搭好了基础框架,只需要补全逻辑和视图部分就行:

1. 先确认资源路由已注册

你已经用php artisan make:controller todoController --resource生成了资源控制器,接下来要在routes/web.php里注册对应的资源路由,这样Laravel才能把删除请求映射到正确的方法:

Route::resource('todos', 'todoController');

这条路由会自动生成包括destroy方法在内的所有RESTful路由,其中删除操作对应的是DELETE /todos/{todo}这个请求地址。

2. 完善控制器的destroy方法

打开app/Http/Controllers/todoController.php,找到destroy方法(如果是空的就补全逻辑),这里我们实现根据ID查找记录并删除的核心逻辑:

public function destroy($id)
{
    // 查找对应ID的记录,找不到直接返回404页面
    $todo = \App\Todo::findOrFail($id);
    // 执行删除操作
    $todo->delete();
    
    // 删除后跳转到列表页,并带上成功提示
    return redirect()->route('todos.index')->with('success', '记录已成功删除');
}

这里假设你的模型是Todo,如果还没生成模型,可以用php artisan make:model Todo快速创建。

3. 在视图中添加删除按钮/表单

因为Laravel默认会阻止GET请求的删除操作(安全考虑),所以我们需要用表单发送DELETE请求。在展示todo列表或详情的视图里,添加这样的删除表单:

<form action="{{ route('todos.destroy', $todo->id) }}" method="POST">
    @csrf
    @method('DELETE')
    <button type="submit" onclick="return confirm('确定要删除这条记录吗?')" class="btn btn-danger">删除</button>
</form>

几个关键点解释:

  • @csrf:生成CSRF令牌字段,防止跨站请求伪造,这是Laravel强制要求的安全校验
  • @method('DELETE'):因为HTML表单本身不支持DELETE方法,这个指令会生成一个隐藏字段,告诉Laravel把当前POST请求当作DELETE请求处理
  • route('todos.destroy', $todo->id):自动生成对应ID的删除路由地址,$todo是你从数据库获取到的模型实例
  • 加上onclick的确认提示,避免用户误删

如果是在列表页批量展示todo,你可以循环渲染每个todo的删除按钮:

@foreach($todos as $todo)
    <div class="todo-item">
        <p>{{ $todo->body }}</p>
        <!-- 每个todo对应的删除表单 -->
        <form action="{{ route('todos.destroy', $todo->id) }}" method="POST">
            @csrf
            @method('DELETE')
            <button type="submit" onclick="return confirm('确定要删除这条记录吗?')" class="btn btn-danger">删除</button>
        </form>
    </div>
@endforeach

4. 测试功能

现在启动本地服务(php artisan serve),打开对应的页面,点击删除按钮,确认后就能看到记录被从数据库中删除,并且跳转到列表页显示成功提示啦。

内容的提问来源于stack exchange,提问作者security enthusiast

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:14:17