Question

Désolé pour mon anglais

Je veux deux tables

factures

  • id
  • user_id
  • Nom
  • créé_at
  • update_at

invoicesitems

  • id
  • FIVOICE_ID
  • Titre
  • créeead_at
  • update_at

modèles

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

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

Maintenant, pour mettre à jour les articles de mes factures? Exemple Mes factures ont 5 éléments, j'ai besoin de la mise à jour de 10 éléments

Supprimez d'abord tous les articles de mes factures et insérer nouveau ???

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

// OK Mettre à jour les factures, maintenant comment mettre à jour les articles? Merci vous.

Était-ce utile?

La solution

Si votre logique d'entreprise permet - vous pouvez simplement remplacer les éléments de la facture.

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

note!C'est une solution assez droite.Vous pouvez vous améliorer à l'aide de la méthode insert() au lieu de create() pour l'insert de lot.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top