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

Laravel使用create方法提交数据未存入数据库仅页面刷新怎么解决

问题1:下拉选择框未配置name属性

你Blade模板里的category选择框没有加name="category"属性,浏览器不会把选中的值随请求提交到后端,导致验证规则里的category必填校验不通过,触发页面回退刷新。
修复方法:给select标签补充name属性:

<select name="category" id="category" onchange="getCategories()" class=" mt-1 block w-full py-2 px-3 border-gray-300 bg-white rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm p-1.5 px-3 border-2  @error('category') border-red-500 @enderror">

问题2:表单缺失多个必填字段

你控制器的验证规则里要求了description、price、subcategory、image四个必填字段,但你目前贴出的Blade代码里完全没有对应这四个字段的输入项,提交请求时这些字段为空,直接触发验证失败。
修复方法:

  • 如果你确实需要这些字段,在Blade模板里补充对应的输入控件,比如description加textarea、price加数字输入框、subcategory加对应选择框、image加文件上传控件
  • 如果你暂时不需要这些字段,把控制器store方法里验证规则对应的条目删除即可。

问题3:存储完成后没有配置跳转逻辑

当前store方法执行create操作后没有返回任何响应,就算数据存储成功,浏览器也会停在原地触发刷新。
修复方法:create操作完成后补充重定向逻辑,示例:

auth()->user()->modules()->create($data);
// 补充下面的重定向,可换成你需要跳转的路由地址
return redirect('/module/create')->with('success', '模块创建成功');

问题4:检查模型批量赋值配置

确认你的Module模型里已经把所有需要通过create方法赋值的字段加入了$fillable属性,否则Laravel的批量赋值保护机制会过滤掉对应字段,导致数据存入失败。
示例Module模型配置:

protected $fillable = ['title', 'category', 'description', 'price', 'subcategory', 'image', 'user_id'];

调试建议

你可以在Blade模板的form标签上方添加全局错误提示,提交后就能直接看到具体是哪项校验不通过,快速定位问题:

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:48:04