Laravel 9中store()方法无法完成记录注册问题求助
问题解决:Laravel提交记录后列表页不显示新增内容
核心错误原因
你在HunterController的store方法中误用了模型方法:
HunterModel::saved($validations);
saved()是Laravel模型的事件监听方法,仅用于在模型保存完成后触发回调逻辑,并非创建新记录的方法。这直接导致表单提交后没有数据写入数据库,所以列表页无法显示新增内容。
修正方案
方案1:使用create()批量创建(推荐)
利用模型的create方法直接批量赋值创建记录:
public function store(Request $request) { $validations = $request->validate([ 'name_hunter' => 'required|max:50', 'year_hunter' => 'required|numeric', 'height_hunter' => 'required|numeric', 'weight_hunter' => 'required|numeric', 'type_hunter' => 'required|max:30', 'type_nen' => 'required|max:30', 'type_blood' => 'required|max:3', ]); // 替换saved为create HunterModel::create($validations); return redirect()->to('/'); }
方案2:实例化模型后手动保存
若需对模型做额外处理,可采用实例化方式:
public function store(Request $request) { $validations = $request->validate([ 'name_hunter' => 'required|max:50', 'year_hunter' => 'required|numeric', 'height_hunter' => 'required|numeric', 'weight_hunter' => 'required|numeric', 'type_hunter' => 'required|max:30', 'type_nen' => 'required|max:30', 'type_blood' => 'required|max:3', ]); $hunter = new HunterModel(); $hunter->fill($validations); $hunter->save(); return redirect()->to('/'); }
额外验证项
- 确认
index方法正确查询所有记录:
public function index() { $hunters = HunterModel::all(); // 或根据需求使用分页查询 return view('index', compact('hunters')); }
- 确认
index.blade.php正确遍历数据:
@foreach($hunters as $hunter) <!-- 此处渲染每条记录的具体字段 --> @endforeach
内容的提问来源于stack exchange,提问作者user19935342
相关产品推荐
相关产品推荐

