Download the PHP package gsferro/select2easy without Composer
On this page you can find all versions of the php package gsferro/select2easy. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package select2easy
Pacotes Dependências:
Package | Versão |
---|---|
Jquery | ^3.* |
Select2 | ^4.0.13 |
Instalação
-
Instalar o pacote via Composer:
- Publicar o pacote:
Configuração
-
Diretrivas blade, Coloque as no seu arquivo de layout
-
No final do header:
- No final do body:
-
-
Caso utilize framework
bootstrap 5
, adicione no header abaixo do@select2easyCss()
:-
Mude ou na instancia do plugin ou diretamente no
public/vendor/select2easy/js/select2easy.js
: -
Ou vc pode utilizar o
@select2easyOptionsJs()
para configurar o plugin para usar otheme
e também já deixara utilizando viamodal
ou outroparent
, basta adicionar antesselect2easyJs()
-
É necesário fazer um ajuste no css para quando o select2 estiver
disabled
e no tamanho doinput
-
Caso queira implementar um css avançado no
theme
, adicione: - É necessário ajustar o css para funcionar com as cores do
validate
:
-
- Caso você queira aplicar a instância do plugin
select2
em todas as tagsselect
, adicione apósselect2easyJs()
:
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 buscasl2Email
: usando o nome como buscasl2Login
: usando o nome como login
- Implemente na model a trait Select2Easy
-
Crie uma stact function
Sl2<NomeMetodo>
que sera chamado na implementação emdata-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:
-
Instancie o plugin no select2easy
- Model
- Import usando:
- Coloque a trait
- crie o
nomeDoMetodoEstaticoDaModel
passando o term e page - Exemplo:
Cascade (select2 parents/dependent)
Tem momentos que é necessário que um select seja dependente de outro para poder exibir os dados pré filtrados, por
exemplo Estado > Cidades
. Para tal, basta colocar o atributo data-sl2_child
no select2 pai
(parent) o
id
do select2 dofilho
(child):
-
Exemplo:
-
Na model: É necessário ter o scope do
pai
e ser inicializado o array$scopeParentAndId
contendo como chave o scope e o value o paramentro$parentId
, e passar para oself::select2easy
, exemplo:-
Caso vc esteja usando as versões do
php
>8, pode utilizar oNamed Arguments
: - Inspirado neste javascript select2-cascade.js
-
Prefixos e Sufixos (pode ser um relacionamento ou coluna)
- Prefixo: adicionado antes do texto do select2
- Sufixo: adicionado depois do texto do select2
Use Templating (Markups)
- O pacote
select2easy
esta preparado para utilizar o recurso deTemplating
, que permite formatar o título (text
) e o html exibido no pluginselect2
. - Para isso, basta criar na model os metodos tanto para o
text
quanto para ohtml
, e o plugin fará o resto. - O
text
é o que sera exibido no select apos a escolha e ohtml
é o que sera exibido quando abre a busca de seleção ao retorno noajax
. - Você também pode utilizar separadamente tanto o
text
quantohtml
, basta passar para o array$markups
o item desejado. -
Cada método receberá 2 parametros no momento de ser invocado pelo pacote:
string $text
eModel $model
, sendo a instancia da a propria model ($this
) utilizada, e estes metodos devem retornar ohtml
que sera rendereziado.-
Exemplo de uso:
-
Exemplo de metodo para o
html
:- Renderização do metodo:
-
Exemplo de metodo para o
text
: -
Renderização do metodo:
- Como você pode ter multiplos metodos para usar o
select2easy
na model, você pode utilizar varios tipos de formatação, conforme a necessidade ou fazer reusos de metodos e views.
-
Selected
-
Links do plugin
- melhor opção:
Para Laravel > 7
Como a ideia, pelo menos nas versões v1.*
do pacote, é manter a compatiblidade com todas as versões do Laravel
,
desde a L5
até a atual L11
, não esta disponivel um component, mas fica aqui uma sugestão e possivel
disponibilzação para as proximas versões de um component completamente funcional (baseado no bootstrap 5
):
-
Crie, caso não exista:
resources/views/components/forms/label.blade.php
-
Crie:
resources/views/components/select2/easy.blade.php
- Ou publique o component
-
Recomendo criar novos components encapsulando-o, Exemplo de uso:
resources/views/components/select2/category.blade.php
- No formulário:
Troubleshooting
-
Erro: "Select2easy não está funcionando":
- Verifique se o pacote está instalado corretamente
- Verifique se o arquivo de layout está configurado corretamente
- Erro: "Select2easy não está aparecendo"
- Verifique se o select2easy está sendo chamado corretamente
- Verifique se o tema está configurado corretamente
- Verifique se a model esta configurado corretamente
- Verifique se o html esta corretamente implementado
License
Laravel Localization is an open-sourced laravel package licensed under the MIT license.