Actualización de varias de datos con tablas hasmany y belongsTo?
-
21-12-2019 - |
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.
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