php 如何用Faker生成移动的号码

w1jd8yoj  于 2022-11-28  发布在  PHP
关注(0)|答案(1)|浏览(282)

我正在使用Laravel 9,我想为我的users表创建一个faker:

public function definition()
    {
        return [
            'usr_first_name' => fake()->name(),
            'usr_last_name' => fake()->name(),
            'usr_user_name' => fake()->unique()->name(),
            'usr_mobile_phone' => , // generates a unique phone number 
            'usr_password_hash' => Hash::make('123456'),
            'usr_email_address' => $faker->unique()->safeEmail,
            'email_verified_at' => now(),
            'usr_is_superuser' => now(),
            'usr_is_active' => 1,
            'usr_str' => Str::random(10),
            'remember_token' => Str::random(10),
        ];
    }

如您所见,对于usr_mobile_phone列,我需要添加一个唯一的移动的号码,其长度为第11个字符。
但我不知道是什么命令在作伪!
所以如果你知道,请告诉我,提前谢谢。

0tdrvxhp

0tdrvxhp1#

您可以使用fake()->e164PhoneNumber()方法获取带有加号和国家/地区代码的电话号码(E164 format),* 基于您可以自定义的应用程序区域设置 *。
现在要得到唯一的电话号码我们可以合并使用unique()方法:fake()->unique()
这将为您提供唯一的电话号码:

fake()->unique()->e164PhoneNumber()

输出示例:+14809888523, +12705838722, +13869134701
...现在,根据您对11位数长度的要求,您可以替换加号:

'usr_mobile_phone' => str_replace('+', '', fake()->unique()->e164PhoneNumber())

请注意,不同的国家/地区有不同的国家/地区代码长度,这会导致输出的电话号码长度不同,您需要自行处理。

或者,您也可以使用fake()->numerify()方法,将格式传递给方法来产生动态格式编号,或使用预设格式###

fake()->unique()->numerfiy('##########');

输出示例:0733375159, 8270962398, 5125950018
...然后加入国家/地区代码:

'usr_mobile_phone' => '1' . fake()->unique()->numerfiy('##########')

相关问题