mountainclans/livewire-select
最新稳定版本:1.3.1
Composer 安装命令:
composer require mountainclans/livewire-select
包简介
This is my package livewire-select
README 文档
README
Установка
Установите пакет с помощью Composer:
composer require mountainclans/livewire-select
Добавьте в файл проекта resources/js/app.js строки
import selectComponent from '../../vendor/mountainclans/livewire-select/resources/js/searchSelect'; Alpine.data('selectComponent', selectComponent);
Добавьте в файл проекта resources/js/app.css строки:
@import '../../vendor/mountainclans/livewire-select/resources/css/searchSelect.css';
Обратите внимание, что для корректной стилизации в вашем проекте должен использоваться TailwindCSS.
Добавьте в tailwind.config.js в секцию content:
'./vendor/mountainclans/livewire-select/resources/views/**/*.blade.php'
Опционально, Вы можете опубликовать views для их переопределения:
php artisan vendor:publish --tag="livewire-select-views"
Использование
Простое использование
<x-ui.select wire:model="modelId"
:hide-search="true"
:label="__('Model *')"
:placeholder="__('Select model')"
:values="$modelsArray"
/>
Допустимые атрибуты тега
wire:model- обязательное поле, к которому будет привязано выбранное в select значение. Вы также можете использоватьwire:model.liveдля моментальной синхронизации выбора с бэкендом;values- массив значений в форматеключ-лейбл. Может быть php-выражением или переменной компонента Livewire;hidden- булево значение, скрывать ли селект. Еслиtrue, элемент будет скрыт, но всё еще будет отображаться элемент, переданный в слотеcontrol. Полезно для создания динамических форм;disabled- возможно ли изменение выбора селекта;label- заголовок над селектом;placeholder- текст элемента, когда ни одно из переданных вvaluesзначений не выбрано;search-function- название функции поиска в родительском Livewire-компоненте (см. пример ниже);total-values- общее количество доступных в селекте элементов. Используется вместе с функцией поиска;hide-search- скрывать ли поисковую строку;
Продвинутое использование с внешней функцией поиска и слотом
Компонент может обновлять значения при вводе пользователем текста, с которым должны совпадать допустимые значения выбора:
<x-ui.select wire:model="modelId"
:values="$modelsArray"
:hidden="$createNewProvider"
:label="__('Model *')"
:placeholder="__('Select model')"
search-function="searchModels"
:total-values="$totalModels"
>
<x-slot:control>
В этот slot можно передать любую вёрстку,
в т.ч. blade-компоненты, привязанные к Livewire,
такие как toggle.
</x-slot:control>
</x-ui.select>
Пример функции поиска, расположенной в родительском Livewire-компоненте:
public function searchModels(string $search, string $selectedValueId): array { $query = Model::query(); if (!empty($search)) { $query ->where('company_name', 'like', "%$search%") ->orWhere('id', '=', "$selectedValueId"); } return $query ->orderBy('company_name') ->get() ->mapWithKeys(function (Provider $provider) { return [$provider->id => $provider->company_name]; }) ->toArray(); }
Авторы
Лицензия
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 23
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-07-09