Pregunta

lo siento por mi inglés

Quiero dos tablas

Las facturas

  • id
  • user_id
  • nombre
  • created_at
  • update_at

Invoicesitems

  • id
  • invoice_id
  • título
  • createad_at
  • update_at

Modelos

class Invoices extends eloquent{
   public function invoicesitems(){
       return $this->hasMany('Invoicesitem');
   }
}

class Invoicesitems extends eloquent{
   public function invoices(){
       return $this->belongsTo('Invoice');
   }
}

Ahora, para actualizar los elementos de mis facturas?Ejemplo mis facturas tienen 5 elemento, necesito actualizar a 10 elementos

primero eliminar todos los elementos de mis facturas e inserte de nuevo ???

$invoices = Invoices::findOrFail($id);
$dataupdate = array(
  'user_id' => Input::get('user'),
  'name' => Input::get('name'),
);
$invoices->fill($dataupdate);
$invoices->save();

//Ok actualización de facturas, ahora cómo actualizar los elementos?Gracias.

¿Fue útil?

Solución

Si su lógica de negocio permite - se puede sustituir la factura de los elementos.

$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);

Nota!Esto es bastante simple solución.Usted puede mejorar mediante el uso de insert() método en lugar de create() para la inserción por lotes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top