yieldstudio / nova-phone-field
基于用户插入的国家代码具有动态格式的 Nova 手机号码字段。
Requires
- php: ^8.0
- laravel/nova: ^4.0
Requires (Dev)
- laravel/pint: ^1.10
README
基于用户插入的国家代码具有动态格式的 Nova 手机号码字段。
从bissolli/nova-phone-field分支以维护包。
要求
- PHP 8.0+
- Laravel Nova 4.0+
- Laravel 框架 8.0+
注意:对于 Laravel 版本 < 8.0 或 Nova < 4,请使用 bissolli/nova-phone-field。
安装
您可以通过 composer 将此包安装到使用 Nova 的 Laravel 应用中。
composer require yieldstudio/nova-phone-field
用法
直接访问您的 Nova 资源并使用 YieldStudio\NovaPhoneField\PhoneNumber
字段。
namespace App\Nova; use YieldStudio\NovaPhoneField\PhoneNumber; class Member extends Resource { // ... public function fields(Request $request) { return [ // ... PhoneNumber::make('Phone Number'), // ... ]; } }
现在您可以在 Nova 应用中的博客文章屏幕上查看和添加标签。所有标签都将保存在 tags
表中。
过滤
默认情况下,将加载并启用 yieldstudio/nova-phone-field/resources/js/data/phone-masks.json
中可用的所有国家掩码。但是,您可以通过调用 onlyCountries()
方法来选择所需的国家。
PhoneNumber::make('Phone Number') ->onlyCountries('BR', 'US', 'IE'),
自定义号码格式
您还可以使用 withCustomFormats()
添加自定义电话格式。
PhoneNumber::make('Phone Number') ->withCustomFormats('+123 ## #.#', '+123 ## ####.####'),
或者,在调用 withCustomFormats()
时仅使用您自己的电话格式,并在其中使用 onlyCustomFormats()
。
PhoneNumber::make('Phone Number') ->withCustomFormats('+123 ## #.#', '+123 ## ####.####') ->onlyCustomFormats(),
从 1.0.x 迁移
在 2.0 中,值现在以 E.164 格式 存储了。之前,格式化后的值被存储,这后来导致了使用上的问题。
使用 E.164 格式,您可以直接使用电话号码。我们在资源的索引和详情中使用了 libphonenumber-js 来对其进行格式化。
要替换之前保存的值,您可以使用此查询
UPDATE _table_ SET _field_=CONCAT('+', REGEXP_REPLACE(_field_, '\\D', ''))
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全性
如果您发现了关于安全性的错误,请通过电子邮件发送到 contact@yieldstudio.fr,而不是使用问题跟踪器。
致谢
- James Hemery
- Gustavo Bissolli
- 特别感谢 Robin Herbots,他构建了互联网上最好的 InputMask 之一。
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。