我的數(shù)據(jù)庫中有兩個表,一個practitioner和第二個practitioner_specialty,它們都有字段effective_date和expiry_date. 當(dāng)我使用表單更新這兩個表時,如果這些表是最后一個effective_date并且expiry_date被保存到兩個表而不是兩個單獨(dú)的表。有沒有辦法阻止一個表更新,所以我只能更新第二個,或者有沒有辦法使用不同的 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貢獻(xiàn)1804條經(jīng)驗 獲得超2個贊
那么您對兩個表使用相同的數(shù)組,因此更新所有字段的原因。您可以嘗試排除一種形式的那些并將它們添加到另一種形式,例如:
$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 關(guān)注
- 160 瀏覽
添加回答
舉報
0/150
提交
取消