PHPackages                             gsferro/select2easy - 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. [Database &amp; ORM](/categories/database)
4. /
5. gsferro/select2easy

ActiveLibrary[Database &amp; ORM](/categories/database)

gsferro/select2easy
===================

Uso global e generico do plugin select2 ajax utilizando o laravel

v1.6.2(1y ago)1829↓50%1MITPHP

Since Jul 1Pushed 1y ago1 watchersCompare

[ Source](https://github.com/gsferro/laravel-select2easy)[ Packagist](https://packagist.org/packages/gsferro/select2easy)[ RSS](/packages/gsferro-select2easy/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (5)DependenciesVersions (13)Used By (1)

 [![select2easy](https://camo.githubusercontent.com/ededcae7ccf723a8a1f69de95e3b12540efdb73557342572b16f2c4c4a2598fd/68747470733a2f2f62616e6e6572732e6265796f6e64636f2e64652f53656c65637432456173792e706e673f7468656d653d6461726b267061636b6167654d616e616765723d636f6d706f7365722b72657175697265267061636b6167654e616d653d6773666572726f25324673656c6563743265617379267061747465726e3d617574756d6e267374796c653d7374796c655f31266465736372697074696f6e3d55736f2b6625433325413163696c2b652b67656e2543332541397269636f2b646f2b706c7567696e2b53656c656374322b416a61782b6e6f2b4c61726176656c266d643d312673686f7757617465726d61726b3d3026666f6e7453697a653d313030707826696d616765733d646f63756d656e742d736561726368)](https://camo.githubusercontent.com/ededcae7ccf723a8a1f69de95e3b12540efdb73557342572b16f2c4c4a2598fd/68747470733a2f2f62616e6e6572732e6265796f6e64636f2e64652f53656c65637432456173792e706e673f7468656d653d6461726b267061636b6167654d616e616765723d636f6d706f7365722b72657175697265267061636b6167654e616d653d6773666572726f25324673656c6563743265617379267061747465726e3d617574756d6e267374796c653d7374796c655f31266465736372697074696f6e3d55736f2b6625433325413163696c2b652b67656e2543332541397269636f2b646f2b706c7567696e2b53656c656374322b416a61782b6e6f2b4c61726176656c266d643d312673686f7757617465726d61726b3d3026666f6e7453697a653d313030707826696d616765733d646f63756d656e742d736561726368)

 [![Latest Version](https://camo.githubusercontent.com/e794be32400f8dece7513441b287a5870e97563540ed823dedf499e4a8a02f0d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6773666572726f2f73656c6563743265617379)](https://packagist.org/packages/gsferro/select2easy) [![Total Downloads](https://camo.githubusercontent.com/9ea1588464202ee2a31b4edcabcc78b3e36b4ef47f4d634a8f716c3c5625c807/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6773666572726f2f73656c6563743265617379)](https://packagist.org/packages/gsferro/select2easy) [![License](https://camo.githubusercontent.com/58741a3e45c3d3e4bff9e93a734f59713324907ad7b63d67ce3de7f04bc93332/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6773666572726f2f73656c6563743265617379)](https://packagist.org/packages/gsferro/select2easy)

---

Pacotes Dependências:
---------------------

[](#pacotes-dependências)

PackageVersãoJquery^3.\*Select2^4.0.13Instalação
----------

[](#instalação)

1. Instalar o pacote via Composer:

    ```
    composer require gsferro/select2easy -W
    ```
2. Publicar o pacote:

    ```
    php artisan vendor:publish --provider="Gsferro\Select2Easy\Providers\Select2EasyServiceProvider" --force

    ```

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

[](#configuração)

- Diretrivas blade, Coloque as no seu arquivo de layout

    - No final do header: ```
        @select2easyCss()
        ```
    - No final do body: ```
        @select2easyCss()
        ```
- Caso utilize framework `bootstrap 5`, adicione no header abaixo do `@select2easyCss()`:

    ```
    @select2easyThemeBootstrap5()
    ```

    - Mude ou na instancia do plugin ou diretamente no `public/vendor/select2easy/js/select2easy.js`:

        ```
           $('#exemple').select2easy({
            theme: 'bootstrap-5',
          });
        ```

        - Ou vc pode utilizar o `@select2easyOptionsJs()` para configurar o plugin para usar o `theme` e também já deixara utilizando via `modal` ou outro `parent`, basta adicionar antes `select2easyJs()`
    - É necesário fazer um ajuste no css para quando o select2 estiver `disabled` e no tamanho do `input`

        ```
        @select2easyThemeBootstrap5Disabled()
        ```
    - Caso queira implementar um css avançado no `theme`, adicione:

        ```
        @select2easyThemeBootstrap5Advance()
        ```
    - É necessário ajustar o css para funcionar com as cores do `validate`:

        ```
          /* ajustando select2 validado: is-invalid */
          .is-invalid+.select2-container--bootstrap-5 .select2-selection,
          .was-validated select:invalid+.select2-container--bootstrap-5 .select2-selection {
              border-color: var(--falcon-form-invalid-border-color) !important;
          }
          /* ajustando select2 validado: is-valid */
          .is-valid+.select2-container--bootstrap-5 .select2-selection,
          .was-validated select:valid+.select2-container--bootstrap-5 .select2-selection {
            border-color: var(--falcon-form-valid-border-color) !important;
          }
        ```
- Caso você queira aplicar a instância do plugin `select2` em todas as tags `select`, adicione após `select2easyJs()`:

    ```
    @select2easyApplyAnyJs()
    ```

Implementação
-------------

[](#implementação)

- Você pode implementar quantos metodos quiser, para chamar a modelo em varias ocaciões dentro do projeto

    - Ex: Model User
    - `sl2Nome`: usando o nome como busca
    - `sl2Email`: usando o nome como busca
    - `sl2Login`: usando o nome como login
- Implemente na model a trait Select2Easy
- Crie uma stact function `Sl2` que sera chamado na implementação em `data-sl2_method` ou `{ sl2_method : ""}`
- Na View:

    - no select coloque a class select2Easy (required)

    - coloque o attributo data-sl2\_method = "nomeDoMetodoEstaticoDaModel"
    - coloque o attributo data-sl2\_model = 'caminho\\para\\Model'
    - ou coloque o attributo data-sl2\_hash = "{{ Crypt::encryptString('caminho\\para\\Model') }}"

    - Exemplo: ```
        Select2 Easy:

        ```
- Instancie o plugin no select2easy

    ```

        $( function() {
            $( '#select2easy' ).select2easy( {
                // select2
                // minimumInputLength : 2 ,

                // ajax
                // delay : 1000 ,

                // select2eay server side
                // sl2_method : 'string Method' ,
                // sl2_hash   : 'Crypt::encryptString('App\Models\Teams')' , // recommend

                // ou
                // sl2_model : 'App\Models\Teams' ,
            } );
        } )

    ```
- Model

    - Import usando: `use Gsferro\Select2Easy\Http\Traits\Select2Easy`
    - Coloque a trait `Select2Easy`
    - crie o `nomeDoMetodoEstaticoDaModel` passando o term e page

    - Exemplo: ```
