PHPackages                             j-j-t-m/laravel-select2 - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. j-j-t-m/laravel-select2

ActiveLaravel-package[Utility &amp; Helpers](/categories/utility)

j-j-t-m/laravel-select2
=======================

Um componente Select2 dinâmico e reutilizável para Laravel.

00JavaScript

Since Oct 17Pushed 6mo agoCompare

[ Source](https://github.com/J-J-T-M/laravel-select2)[ Packagist](https://packagist.org/packages/j-j-t-m/laravel-select2)[ RSS](/packages/j-j-t-m-laravel-select2/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Componente Select2 Dinâmico para Laravel
========================================

[](#componente-select2-dinâmico-para-laravel)

[![Latest Version on Packagist](https://camo.githubusercontent.com/358e5e06d08b4af313ef1fb5ff082b3cfce41cac8468da2fb1ccb6538de62c58/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f4a2d4a2d542d4d2f6c61726176656c2d73656c656374322e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/J-J-T-M/laravel-select2)[![Total Downloads](https://camo.githubusercontent.com/9298a3aad7cf2f22b99b4bb9e5edda8a261a73811a402a0c6031298484c60a09/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f4a2d4a2d542d4d2f6c61726176656c2d73656c656374322e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/J-J-T-M/laravel-select2)[![License: MIT](https://camo.githubusercontent.com/1b01ef0024ba0866c115986b895301f657c1b21fc29f05c4844b7f2e8d89204d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e7376673f7374796c653d666c61742d737175617265)](https://opensource.org/licenses/MIT)

Um componente Blade robusto e reutilizável que integra a biblioteca Select2 com o backend Laravel para criar selects dinâmicos com busca via AJAX, paginação (rolagem infinita) e suporte a selects dependentes (cascata).

Funcionalidades
---------------

[](#funcionalidades)

- **Busca por AJAX:** Carrega dados de forma assíncrona, ideal para listas grandes.
- **Paginação Automática:** Suporte a "rolagem infinita" para melhor performance.
- **Selects Dependentes:** Crie selects em cascata (ex: Estado -&gt; Cidade) de forma simples.
- **Configuração Centralizada:** Gerencie todas as suas listas em um único arquivo de configuração.
- **Componente Blade:** Fácil de usar em suas views com a sintaxe ``.
- **Seguro e Otimizado:** Construído com boas práticas de segurança e performance em mente.

Instalação
----------

[](#instalação)

**Pré-requisitos:**

- Laravel 11+
- PHP 8.2+
- jQuery
- Select2 (v4+)

**1. Instale o pacote via Composer:**

```
composer require J-J-T-M/laravel-select2
```

**2. Publique os arquivos de configuração e assets:**

Este comando irá copiar o arquivo de configuração `lists.php` para a pasta `config/` do seu projeto e o arquivo JavaScript para `public/vendor/laravel-select2/`.

```
php artisan vendor:publish --provider="J-J-T-M\LaravelSelect2\Providers\Select2ServiceProvider"
```

**3. Inclua os assets no seu layout:**

No seu arquivo de layout principal (ex: `resources/views/layouts/app.blade.php`), certifique-se de incluir o jQuery, a biblioteca Select2 (CSS e JS) e o script do nosso componente.

```

    ...

    ...

    ...

```

Configuração
------------

[](#configuração)

Após publicar os arquivos, edite `config/lists.php` para mapear as "chaves" que você usará no componente para os seus Models do Eloquent. O Model correspondente deve implementar a interface `ListInterface`.

```
// config/lists.php

return [
    'city' => \App\Models\City::class,
    'supplier' => \App\Models\Supplier::class,
];
```

Uso
---

[](#uso)

### 1. Preparando o Model

[](#1-preparando-o-model)

Seu Model precisa implementar a `J-J-T-M\LaravelSelect2\Interfaces\ListInterface`, que exige um método estático `getList`. Este método conterá a lógica para buscar e filtrar os dados.

**Exemplo: `app/Models/City.php`**

```
