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
相关产品推荐
相关产品推荐

