par
Saian » 03 mai 2019, 15:13
Salut, une idée comme ça, parce que ça pourrait vraiment être fait de façons diverses et variées.
Pour éviter de multiplier le nombre de tables, une table "trait" avec 2 colonnes "type" et "value".
Dans type tu stockes par exemple gender, eye_color, hair, hair_color, etc, en fait autant de type que tu as de "caractéristiques" et dans la colonne value tu mets une des valeurs possibles. Tu ajoutes autant de lignes que nécessaire.
Pour choisir aléatoirement 1 valeur pour une caractéristique tu peux faire (avec doctrine) un findBy(array('type' => 'eye_color')).
Ensuite tu peux utiliser la fonction rand() pour choisir aléatoirement un des éléments retournés :
$eyeColors = $this->getDoctrine()->getRepository(Trait::class)->findBy(array('type' => Trait::TYPE_EYE_COLOR));
$eyeColor = $eyeColors[rand(0, count($eyeColors) - 1)];
Salut, une idée comme ça, parce que ça pourrait vraiment être fait de façons diverses et variées.
Pour éviter de multiplier le nombre de tables, une table "trait" avec 2 colonnes "type" et "value".
Dans type tu stockes par exemple gender, eye_color, hair, hair_color, etc, en fait autant de type que tu as de "caractéristiques" et dans la colonne value tu mets une des valeurs possibles. Tu ajoutes autant de lignes que nécessaire.
Pour choisir aléatoirement 1 valeur pour une caractéristique tu peux faire (avec doctrine) un findBy(array('type' => 'eye_color')).
Ensuite tu peux utiliser la fonction rand() pour choisir aléatoirement un des éléments retournés :
[PHP]$eyeColors = $this->getDoctrine()->getRepository(Trait::class)->findBy(array('type' => Trait::TYPE_EYE_COLOR));
$eyeColor = $eyeColors[rand(0, count($eyeColors) - 1)];[/PHP]