php - Eloquent 错误地将多个模型保存到数据库
问题描述
我有一个控制器,它创建一个新模型然后将它传递给视图
public function fill_site_form($id, $step_id, $form_id){
$form = new FormEntry();
$form->site_id = $id;
$form->form_id = $form_id;
$form->step_id = $step_id;
$form->entry_json = Form::find($form_id)->form_json;
$form->save();
return view('sites.fill_site_form', ['form' => $form]);
}
我需要它只在数据库中创建一条记录,但每次我去那条路线时它都会创建两条记录。
我删除了 ->save,然后没有记录插入到数据库中。
有什么建议么?
编辑:
$form->save 上的 DB 条目图像: SCREENSHOT IMAGE LINK
数据库架构:
Schema::create('form_entries', function (Blueprint $table) { $table->increments('id'); $table->integer('site_id'); $table->integer('form_id'); $table->integer('step_id'); $table->text('entry_json', 600000); $table->timestamps(); });
从 sites.fill_site_form 视图接收 ajax 的代码
public function update_site_ajax($id, Request $request){ $entry = FormEntry::find($id); $entry->entry_json = json_encode($request->form_json); $entry->save(); return $request->all(); }
前端AJAX代码:
$('#submit_button').click((e)=>{ $.ajax({ type:'PATCH', url:'/site/' + document.getElementById('form_id').value, data: {'form_json' : renderer.userData}, success:function(data){ $.notify("Form successfully Updated!", { position:"top center", className: 'success' } ); console.log('Response: ', data) } }); });
解决方案
我无法让它与 Model::create 或 Model->save 一起使用,所以我求助于看起来更稳定的 Model::firstOrCreate,仍然想知道为什么只在该模型上创建两个条目
推荐阅读
- javascript - Sheetjs`!rows`(和`!cols`)属性在新创建的工作表上不存在?
- python - Matplotlib:辅助轴与两个主轴共享值
- ios - 删除 UItableView Cell 的第一行分隔符
- react-native - 如何防止 Metro 随机重新加载我的应用程序?
- mql4 - 没有适当的错误反馈,OrderClose 无法在 MQL4 中工作
- python - 在 tkinter 更改状态栏的过程中是否有任何选项可以传递参数?
- python - kivy上发生事件时如何增加计数器
- javascript - 如何使用 react-responsive-carousel 和 react-image-magnifiers 映射自定义缩略图的值?
- python - Panda Dataframe 的 Python 并发期货
- vue.js - 应用程序给我一个“无法读取属性”错误,但只有布局受到影响