2015-12-13 1 views
1

Y at-il un moyen de générer un code postal à 5 ​​chiffres en utilisant fzaninotto's Faker? Sa fonction fournie pour ce faire, $faker->postcode, n'offre pas de paramètres pour limiter sa taille, donc il donne souvent un code postal à 9 chiffres au lieu de 5, par exemple, 10278-4159 au lieu de 10278. Ceci est problématique pour ensemencer un base de données, parce que ma base de données sql a une colonne de code postal de INT (5). Je sais que je peux simplement générer un nombre aléatoire de 5 chiffres avec Faker, mais je voulais savoir s'il y avait une façon native de générer des codes postaux à 5 chiffres.php fzaninotto Faker - Comment générer seulement 5 chiffres Code postal?

+2

Vous pouvez simplement raccourcir le code postal renvoyé en utilisant ['substr()'] (http://php.net/manual/fr/function.substr.php) -> '$ postcode = (strlen ($ faker- > code postal)> 5)? substr ($ faker-> code postal, 0,5): $ faker-> code postal; ' – Sean

+2

Les codes postaux ne doivent pas être des entiers. Le code postal de ma ville commence par un '0', cela causerait un problème. Démonstration du problème principal «0»; http: //sqlfiddle.com/#! 9/814ba/1 ... Ne pourriez-vous pas prendre les 5 premiers caractères? – chris85

+1

"parce que ma base de données sql a une colonne de code postal de INT (5)" Danger! Danger, Will Robinson! Vous allez transformer '02108' en' 2108' et vous devez le remplir à gauche pour l'afficher. Les codes postaux ne sont pas des ** entiers. – ceejayoz

Répondre

3

Une solution de contournement que j'ai trouvée utilise le code postal de la classe d'adresses qui renvoie toujours 5 chiffres.

Au lieu de $faker->postcode, vous pouvez appeler Address::postcode().

N'oubliez pas d'inclure use Faker\Provider\Address;.