Viele mehrere Daten mit den Tabellen hasmany und heardTo aktualisieren?
-
21-12-2019 - |
Frage
Entschuldigung für mein Englisch
Ich möchte zwei Tische
Rechnungen
- Ausweis
- Benutzer-ID
- Name
- hergestellt in
- update_at
Rechnungspositionen
- Ausweis
- Rechnungs-ID
- Titel
- createad_at
- update_at
Modelle
class Invoices extends eloquent{
public function invoicesitems(){
return $this->hasMany('Invoicesitem');
}
}
class Invoicesitems extends eloquent{
public function invoices(){
return $this->belongsTo('Invoice');
}
}
Nun, um die Posten meiner Rechnungen zu aktualisieren?Beispiel: Meine Rechnungen umfassen 5 Artikel, ich muss auf 10 Artikel aktualisiert werden
Zuerst alle Posten meiner Rechnungen löschen und neue einfügen???
$invoices = Invoices::findOrFail($id);
$dataupdate = array(
'user_id' => Input::get('user'),
'name' => Input::get('name'),
);
$invoices->fill($dataupdate);
$invoices->save();
//Ok, Rechnungen aktualisieren, wie aktualisiere ich nun Artikel?Danke.
Lösung
Wenn Ihre Geschäftslogik dies zulässt, können Sie die Rechnungspositionen einfach ersetzen.
$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);
Notiz!Das ist eine ganz klare Lösung.Sie können sich verbessern, indem Sie verwenden insert()
Methode statt create()
für Batch-Einfügung.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow