Aggiorna molti dati multipli con le tabelle hasmany e appartensmo?
-
21-12-2019 - |
Domanda
Scusa per il mio inglese
Voglio due tavoli
Fatture
- .
- ID
- user_id
- Nome
- creato_at
- update_at
InvobesItems
- .
- ID
- fattura_id
- Titolo
- createad_at
- update_at
Modelli
class Invoices extends eloquent{
public function invoicesitems(){
return $this->hasMany('Invoicesitem');
}
}
class Invoicesitems extends eloquent{
public function invoices(){
return $this->belongsTo('Invoice');
}
}
.
Ora, per aggiornare gli elementi delle mie fatture? ESEMPIO Le mie fatture hanno 5 articoli, ho bisogno di aggiornare a 10 elementi
Prima elimina tutti gli elementi delle mie fatture e inserisci nuovo ???
$invoices = Invoices::findOrFail($id);
$dataupdate = array(
'user_id' => Input::get('user'),
'name' => Input::get('name'),
);
$invoices->fill($dataupdate);
$invoices->save();
.
// OK Aggiorna fatture, ora come aggiornare gli articoli? Grazie.
Soluzione
Se la logica aziendale consente - puoi semplicemente sostituire gli elementi della fattura.
$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!Questa è una soluzione piuttosto diretta.È possibile migliorare utilizzando il metodo insert()
anziché create()
per inserimento batch.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow