Обновите много множественных данных с таблицами Hasmany и Casesto?

StackOverflow https://stackoverflow.com//questions/21027204

Вопрос

Извините за мой английский

Я хочу две таблицы

<Сильные> Счета

    .
  • id id
  • user_id
  • имя
  • создан_at
  • update_at

<Сильные> Заданные счеты

    .
  • id 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 Обновление счетов, теперь как обновлять элементы? Спасибо вам.

Это было полезно?

Решение

Если ваша бизнес-логика позволяет - вы можете просто заменить элементы счета.

$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