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.

È stato utile?

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
scroll top