php fzaninotto Faker - 如何生成只包含5位数字的邮政编码?

7
有没有一种方法可以使用fzaninotto's Faker生成一个5位数的邮政编码?
他提供的函数$faker->postcode没有提供限制其大小的参数,因此它通常会给出9位数的邮政编码,而不是5位数的邮政编码,例如10278-4159而不是10278。这对于填充数据库是有问题的,因为我的 SQL 数据库具有 INT(5) 的邮政编码列。
我知道我可以仅使用Faker生成一个随机的5位数,但我想知道是否有一种本地方法来生成5位数的邮政编码。

4
你可以使用 substr() 函数来缩短返回的邮政编码 -> $postcode = (strlen($faker->postcode) > 5) ? substr($faker->postcode,0,5) : $faker->postcode; - Sean
2
邮政编码不应该是整数。我的城市的邮政编码以“0”开头,这会导致问题。前导“0”的问题演示:http://sqlfiddle.com/#!9/814ba/1... 你不能只取前5个字符吗? - chris85
1
因为我的 SQL 数据库有一个 INT(5) 的邮政编码列。危险!危险,威尔·罗宾逊!你将把 02108 转换成 2108 并且必须左填充以进行显示。邮政编码不是整数。 - ceejayoz
1个回答

6
我发现的一种解决方法是使用地址类的邮政编码,该类始终返回5个数字。
您可以调用Address :: postcode()而不是$faker->postcode
别忘了包括use Faker\Provider\Address;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接