Bonjour à tous !

Ce que je veux

Je dois créer une page pour qu'un utilisateur puisse enregistrer en base de données dès la livraison des hardwares. Mes champs dans AddMediaType (formulaire) => numéro(s) de série, type (usb, disque dur, dvd ?..) taille (500GB, 1TB, 2TB etc...), fabricants (Samsung, Maxtor, Hitachi...) etc...

Jusque là rien de compliqué, sauf concernant les numéros de séries, il s'agit d'un champ textarea, je les récupère un à un avec un explode. L'idée est que, pour chaque serial (imaginons 10) j'enregistre le type, la taille, le fabricant renseignés depuis le même formulaire et ce pour chacun des numéros de série. Exemple :

Le formulaire :

SerialNumber1
SerialNumber2
SerialNumber3
SerialNumber4

Type => Disque dur
Taille => 1TB
Fabricant => Samsung
Modèle => DFDSF324XC
Etc...

En base de données nous aurons =>

SerialNumber1 => Disque dur, 1TB, Samsung, DFDSF324XC;
SerialNumber2 => Disque dur, 1TB, Samsung, DFDSF324XC;
SerialNumber3 => Disque dur, 1TB, Samsung, DFDSF324XC;
SerialNumber4 => Disque dur, 1TB, Samsung, DFDSF324XC;

Les valeurs type, taille, fabricant, modèle sont communes à chaque Serial Number.

Ce que j'obtiens

Mon code actuel => https://pastebin.com/DECQDUvu évidemment, un seul des numéros de série est enregistré en base de données puisque dans mon foreach j'écrase sans cesse les valeurs l'une après l'autre dans un seul et même objet.

Le serial number appartient à la classe Hardware sans relation car je ne peux modifier la base de données..

Auriez-vous des pistes ? Merci !

1 réponse


Salut.

Apparemment, tu crées 1 objet, tu fais une boucle dessus où tu modifie le serial plusieurs fois, puis tu envois cet objet.

Tu devrais, dans ta boucle : créer un nouvel objet, modifié le serial, le faire persister,
puis envoyer tous ces objets.

;)