atsight/laravel-phone

使用免费Twilio电话查询服务的Laravel电话验证器。此分支支持Laravel 8.8

dev-master 2022-08-25 12:10 UTC

This package is auto-updated.

Last update: 2024-09-25 17:10:38 UTC


README

Latest Stable Version License Total Downloads Build Status

简介

为Laravel 6+提供的电话验证器,使用免费的Twilio Lookup API

此软件包为开发人员提供了验证电话号码和格式化电话号码的功能。所有数据都将从Twilio Lookup API获取。

验证可以配置为检查号码是否有效,或者是否在给定的ISO-3166-1 Alpha 2国家代码列表内。

安装

通过composer安装

composer require ellisio/laravel-phone

将您的Twilio凭证添加到您的.env文件中。如果您没有Twilio账户,您可以在这里免费注册一个。

TWILIO_ACCOUNT_SID=xxxxxxxx
TWILIO_AUTH_TOKEN=xxxxxxxx

配置

如果您想自定义此软件包的配置,可以运行以下命令将配置文件发布到/config/phone.php

php artisan vendor:publish --provider=EllisIO/Phone/PhoneServiceProvider --tag=laravel-phone-config

如果您想自定义验证消息的输出,可以运行以下命令将翻译文件发布到/lang/vendor/laravel-phone

php artisan vendor:publish --provider=EllisIO/Phone/PhoneServiceProvider --tag=laravel-phone-translations

使用

电话验证

如果您需要验证给定的号码是否有效,并且仅此而已,请使用phone规则。

return [
    'phone' => 'required|phone',
];

国家验证

如果您需要验证给定的号码是否在国家的列表中有效,请使用phone_country:US,CA规则。您可以列出任意数量的ISO-3166-1 Alpha 2,用逗号分隔。

return [
    'phone' => 'required|phone_country:US,CA',
];

格式化电话号码

如果您想使用INTERNATIONAL_FORMAT格式化电话号码,请使用以下代码

Phone::formatNumber('5551234567');

创建电话号码对象

此库包括生成Phone对象的能力。此对象包含有关号码的以下详细信息

  • countryCode: ISO-3166 alpha 2国家代码。
  • number: E.164号码。
  • formattedNumber: 国家格式化号码。
$phone = Phone::getPhone('5551234567');
$phone->getNumber(); // Returns "+15551234567"
$phone->getNationalNumber(); // Returns "5551234567"
$phone->getFormattedNumber(); // Returns "(555) 123-4567"
$phone->getCountry(); // Returns "US"
$phone->getCountryCallingCode(); // Returns "1"

处理无效号码

有时您可能遇到不良数据,这是常有的事。为了处理这个问题,只需检查是否返回了null

if (! $phone = Phone::getPhone('123')) {
    echo "Invalid number provided.";
}

支持

需要帮助?创建一个问题