mountainclans/livewire-phone-input
最新稳定版本:1.2.2
Composer 安装命令:
composer require mountainclans/livewire-phone-input
包简介
Phone input component for Livewire 3
README 文档
README
Доработанная под использование с Vite версия компонента телефонного ввода
Установка
Установите пакет при помощи Composer:
composer require mountainclans/livewire-phone-input
Поскольку функциональность пакета основана на пакете Intl Tel Input, установите его через npm:
npm install intl-tel-input --save
Добавьте в файл проекта resources/js/app.js строки
import intlTelInput from 'intl-tel-input/intlTelInputWithUtils'; import '../../vendor/mountainclans/livewire-phone-input/resources/js/phoneInput'; window.intlTelInput = window.intlTelInputGlobals = intlTelInput;
Добавьте в файл проекта resources/js/app.css строки:
@import 'intl-tel-input/build/css/intlTelInput.css';
@import '../../vendor/mountainclans/livewire-phone-input/resources/css/phoneInput.css';
Обратите внимание, что для корректной стилизации в вашем проекте должен использоваться TailwindCSS.
Добавьте в tailwind.config.js в секцию content:
'./vendor/mountainclans/livewire-phone-input/resources/views/**/*.blade.php'
Добавьте переменную с параметрами конфигурации в подвал:
<script>
window.laravelTelInputConfig = {
"allowDropdown": true,
"autoHideDialCode": true,
"autoPlaceholder": "polite",
"customContainer": "",
"customPlaceholder": null,
"dropdownContainer": null,
"excludeCountries": [],
"formatOnDisplay": true,
"geoIpLookup": "ipinfo",
"initialCountry": '{{ $phonePreferredCountry }}',
"localizedCountries": [],
"nationalMode": true,
"onlyCountries": [],
"placeholderNumberType": "MOBILE",
"preferredCountries": ["ES", "DE", "RU", "US", "GB", "KZ"],
"separateDialCode": false,
"utilsScript": "./utils.js"
}
</script>
Обязательно переопределите $phonePreferredCountry!
Пример функции для получения этой переменной:
public function preferredPhoneInputLocale(): string { return match(app()->currentLocale()) { 'ru' => 'RU', 'kk' => 'KZ', default => 'GB', }; }
Использование
<x-ui.phone-input wire:model="phone"
value="{{ $phone }}"
phone-country-input="phoneCountry"
:label="__('Phone')"
id="phone"
name="phone"
id="phone"
class="additional-class-here"
:default-classes="false"
initial-country="RU"
/>
Обратите внимание, что для записи кода страны в родительском компоненте должно присутствовать поле phoneCountry (или любое другое, которые вы передадите в prop phone-country-input).
Используйте prop :default-classes="false", если Вы хотите полностью переопределить внешний вид input.
Если Вам необходимо обновить рендеринг компонента phone-input при действиях на бекэнде, воспользуйтесь трейтом RefreshPhoneInputs:
class YourLivewireComponent extends Component { use MountainClans\LivewirePhoneInput\Traits\RefreshPhoneInputs; // к примеру, после динамического появления телефонного поля в форме public function updatedAddPhone(): void { $this->refreshPhoneInputs(); } }
Авторы
Лицензия
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 26
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-07-03