문제

내 영어로 죄송합니다

나는 두 개의 테이블을 원한다

송장

  • 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() 메소드를 사용하여 향상시킬 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top