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 othemee também já deixara utilizando viamodalou outroparent, basta adicionar antesselect2easyJs() -
É necesário fazer um ajuste no css para quando o select2 estiver
disablede 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
select2em 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_methodou{ 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
nomeDoMetodoEstaticoDaModelpassando 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
paie ser inicializado o array$scopeParentAndIdcontendo 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
select2easyesta 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
textquanto 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
textquantohtml, basta passar para o array$markupso item desejado. -
Cada método receberá 2 parametros no momento de ser invocado pelo pacote:
string $texteModel $model, sendo a instancia da a propria model ($this) utilizada, e estes metodos devem retornar ohtmlque 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
select2easyna 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.