Mettez à jour de nombreuses données multiples avec des tables hasmany et de l'appartenance?
-
21-12-2019 - |
Question
Désolé pour mon anglais
Je veux deux tables
- id
- user_id
- Nom
- créé_at
- update_at
- 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.
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