Laravel France

Incrémentation dans la base de donnée mysql avec laravel

Avatar de YvesNdinga
YvesNdinga

Bonjour la famille, j'ai un problème d'incrémentation d'une colonne de la table mysql, le Champ Code doit avoir une nomanclature suivante: E-10002-MP ; je ne sais pas comment incrémenté cela avec les valeurs par exp: E-10003-MP, E-10004-MP, E-10005-MP... je suis sur laravel 8.

Merci d'avance pour vos commentaires.

Posté il y a 1 mois
Avatar de F.M.
F.M.

Tu peux préciser le problème ?

Avatar de CinquièmeDimension
CinquièmeDimension

Salut,

Au lieu de faire ça, tu ne peux pas plutôt faire E-{{ $id }}-MP à l'affichage ?

Ou alors tu concerve en champ id en int (avec un premier id à 10001) et, à la création d'un objet, tu va renseigner un champ code avec la structure suivante :

$object->code = "E-".$object->code."MP";

Avatar de mgkprod
mgkprod

Si c'est juste une incrémentation par rapport au row précédent, tu peux te brancher sur le creating de ton modèle et faire les actions suivantes, dans l'ordre :

  • aller chercher le dernier code avec un one-liner genre $latestCode = Model::orderBy('code', 'DESC')->first()->value('code')
  • si c'est toujours le même format, tu peux enlever le "E-" et "-MP" avec un str_replace, sinon le découper avec une regex
  • incrémenter le code et le définir sur ton modèle en cours de création

Je pense que c'est la méthode la plus propre que tu peux faire coté Laravel.

Vous ne pouvez pas répondre à ce sujet.