테이블 Hasmany와 SpectSto로 여러 개의 여러 데이터를 업데이트합니까?
-
21-12-2019 - |
문제
내 영어로 죄송합니다
나는 두 개의 테이블을 원한다
송장
- id
- user_id
- name
- created_at
- update_at
invoicesItems
- id
- invoice_id
- 제목
- createad_at
- update_at
모델
class Invoices extends eloquent{
public function invoicesitems(){
return $this->hasMany('Invoicesitem');
}
}
class Invoicesitems extends eloquent{
public function invoices(){
return $this->belongsTo('Invoice');
}
}
.
이제 내 송장의 항목을 업데이트하는 것입니까? 예제 내 송장에는 5 개의 항목이 있으므로 10 항목으로 업데이트가 필요합니다
먼저 내 송장의 모든 항목을 삭제하고 새 항목을 삽입 하시겠습니까 ???
$invoices = Invoices::findOrFail($id);
$dataupdate = array(
'user_id' => Input::get('user'),
'name' => Input::get('name'),
);
$invoices->fill($dataupdate);
$invoices->save();
.
// ok invoices, 지금 항목을 업데이트하는 방법은 무엇입니까? 감사합니다.
해결책
비즈니스 논리가 허용하는 경우 - 인보이스 항목을 바꿀 수 있습니다.
$invoice = Invoices::findOrFail($id);
$dataupdate = array(
'user_id' => Input::get('user'),
'name' => Input::get('name'),
);
$invoice->update($dataupdate);
// replace invoice items
$invoice->invoicesitems()->delete();
$invoice->invoicesitems()->create($invoiceItems);
.
메모!이것은 매우 똑바로 솔루션입니다.배치 삽입을 위해 insert()
대신 create()
메소드를 사용하여 향상시킬 수 있습니다.
제휴하지 않습니다 StackOverflow