我的数据库中有两个表,一个practitioner和第二个practitioner_specialty,它们都有字段effective_date和expiry_date. 当我使用表单更新这两个表时,如果这些表是最后一个effective_date并且expiry_date被保存到两个表而不是两个单独的表。有没有办法阻止一个表更新,所以我只能更新第二个,或者有没有办法使用不同的 id/name 保存它,这样它们对于practitionerand 来说都是唯一的practitioner_specialty?这是我用于更新表格的表单和控制器。控制器:public function updatePractitioner(Request $request, $id) { $this->validate($request, [ 'effective_date' => 'required', ] ); $fields = $request->all(); $primary_key = $this->PractitionerRepository->getIdName(); $primary_key_specialty = $this->PractitionerSpecialtyRepository->getIdName(); $practitioner_specialty_id = PractitionerSpecialty::where('practitioner_id', $id)->value('practitioner_specialty_id'); $fields[$primary_key] = $id; $this->PractitionerRepository->update($fields); $fields[$primary_key_specialty] = $practitioner_specialty_id; $this->PractitionerSpecialtyRepository->update($fields); return back()->with('successUpdate', 'Practitioner has been updated!'); }
2 回答
慕婉清6462132
TA贡献1804条经验 获得超2个赞
那么您对两个表使用相同的数组,因此更新所有字段的原因。您可以尝试排除一种形式的那些并将它们添加到另一种形式,例如:
$practictionerFields = $request->except('expiry_date', 'effective_date');
$practictionerFields[$primary_key] = $id;
$this->PractitionerRepository->update($practictionerFields);
// and use the other $fields array for the PractitionerSpecialty model.
- 2 回答
- 0 关注
- 143 浏览
添加回答
举报
0/150
提交
取消