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

Laravel 5.7表单提交后跳转但数据未存入数据库问题求助

解决表单提交后数据未存入数据库的问题

我帮你排查出几个关键问题,修复后就能正常保存数据了:

1. 表单提交地址错误

你的Blade视图里表单的action指向了/admin/categories/index,但对应的表单处理逻辑在/admin/categories/create路由上,导致提交后根本没走到正确的控制器方法里。另外原代码里action属性后面多了个多余的逗号,属于语法错误。

修复方法:
把表单的action改成正确的路由地址,同时去掉多余逗号:

<form class="k-form" method="post" action="{{ url('/admin/categories/create') }}" name="" id="k_form">
    @csrf
    <!-- 其他表单内容 -->
</form>

2. 模型属性赋值遗漏

控制器里你获取了$data['description'],但没有把它赋值给Categories模型的description属性,这会导致描述字段无法存入数据库,甚至可能因为模型的必填字段约束触发静默失败。

修复方法:
把这行无效代码:

$categories_description = $data['description'];

替换为正确的属性赋值:

$categories->description = $data['description'];

3. 可选优化:添加验证与错误反馈

为了让代码更健壮,建议添加表单验证和操作结果反馈,避免无意义的静默失败:

public function create(Request $request) { 
    if ($request->isMethod('post')) { 
        // 验证表单输入合法性
        $validated = $request->validate([
            'category_name' => 'required|string|max:255',
            'description' => 'required|string',
        ]);

        $categories = new Categories; 
        $categories->name = $validated['category_name']; 
        $categories->description = $validated['description']; 

        // 检查保存状态并给出反馈
        if($categories->save()){
            return redirect('/admin/categories/index')->with('success', '分类添加成功!');
        } else {
            return back()->with('error', '分类添加失败,请重试');
        }
    } 
    return view('admin.categories.create'); 
}

同时可以在视图里添加反馈提示:

@if(session('success'))
    <div class="alert alert-success">{{ session('success') }}</div>
@endif
@if(session('error'))
    <div class="alert alert-danger">{{ session('error') }}</div>
@endif

4. 跳转逻辑优化

原代码保存后直接返回index视图,建议用重定向代替直接返回视图,避免用户刷新页面时重复提交表单:

// 替换原返回视图的代码
return redirect('/admin/categories/index');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 06:23:16