Faker是否生成了奇怪的电话号码?

问题描述 投票:3回答:3

因此,我正在使用Laravel创建数据库并将其作为种子,然后我遇到了一个问题,该问题生成了如下的电话号码:(635) 889-5802 x45134。这会超出数据库列的所需长度,从而导致问题。

所以我的问题是:

  1. 在实践上,为什么要这样做? x#####的实际用例是什么?我环顾四周,找不到很好的解释,最好的猜测是内部组织扩展。
  2. [在构建最终可能会变得国际化的应用程序时,为这些功能提供支持是一个好主意吗?如果是这样,那么扩大列宽对我来说将是一个更好的解决方案。
  3. 如果这不重要,是否有办法防止这些x#####附加到生成的号码上?我觉得这应该是一个选择。如果不是这样,听起来最好的选择是使用自定义提供程序或正则表达式过滤器来删除这些值。
php phone-number faker
3个回答
2
投票

x####通常用于指示电话分机。通过查看电话号码提供商的source code,无法删除该分机,因此您必须自己这样做。

但是,您可能需要考虑阅读Falsehoods Programmers Believe About Phone Numbers


1
投票

您需要确保伪造者使用的是正确的语言环境。试试这个:

use Faker\Factory as Faker;

//...

$faker = Faker::create('en_GB');

Faker随后将生成GB兼容的电话号码等


0
投票

为了避免此问题,您的迁移应像这样。。>

 $table->string('phone_number');

您的播种机应该是这样。

'phone_number' => $faker->phoneNumber,
© www.soinside.com 2019 - 2024. All rights reserved.