forum icon indicating copy to clipboard operation
forum copied to clipboard

Injetando uma Blade em um modal

Open phpiando opened this issue 8 years ago • 7 comments

Olá galera tudo bem?

Estou com um pensamento de ganhar tempo e reaproveitar algo que já está pronto, sendo assim cheguei no seguinte item.

Hoje possuo o index.blade.php ( que é a página principal que está todos meus CSS e JS da vida.), e também tenho as views que são apenas o 'miolo' das minhas páginas. Até aqui está tudo bem, surgiu a dúvida no seguinte ponto. Tenho a tela de cadastro de usuários, para ir até está tela a pessoa clica no menu "Cadastrar Usuário" e posteriormente abre a tela com o formulário, a minha ideia é simples (até o momento), gostaria que qualquer tela que o usuário estiver, isto é, pode está na tela de monitoramento do sistema porém se ele clicar em um botão "Novo Cliente" ao invés de redirecionar o usuário para tela de fato a mesma seria aberta em um modal.

Não sei se consegui deixar de uma forma clara a minha dúvida, mas a minha ideia é de reaproveitar as telas de cadastro.

Agradeço pela ajuda antecipadamente

phpiando avatar Jul 27 '17 15:07 phpiando

É possível sim. Existe uma técnica que o conteúdo do modal é preenchido dinamicamente (via ajax), e é algo bem simples de fazer.

elton182 avatar Jul 27 '17 16:07 elton182

@elton182 Obrigado pela dica. Não quero abusar, mas você por acaso não teria o link disso? Ou como que eu poderia pesquisar aqui? Obrigado novamente pela sua resposta!

phpiando avatar Jul 27 '17 18:07 phpiando

Pode fazer com iframe também. Simples e trivial =D

zabaala avatar Aug 04 '17 13:08 zabaala

Uma boa é utilizar o colorbox: http://www.jacklmoore.com/colorbox/

Como o amigo falou acima, é como se fosse um iframe.

ranierif avatar Aug 07 '17 13:08 ranierif

Não sei a versão que você está usando, então vou separar meu comentário em 2 etapas, uma caso a versão seja o Laravel 5.4 ou maior e outra para as todas as versões.

Laravel 5.4 ou maior

Na versão 5.4 foi desenvolvido uma funcionalidade aonde pode-se criar componentes, que servem para serem reutilizados em várias áreas de sua aplicação.

Para criar um componente é muito simples, basta criar um arquivo na pasta resources/views/ e depois chamar a função @component('nome') dentro de sua view.

Documentação: https://laravel.com/docs/master/blade#components-and-slots

** Todas as versões **

Pensando no conceito descrito a cima de componentes, que servem para serem reutilizados em sua aplicação, você pode criar um arquivo separado, e incluir ele nas views em que você necessita, usando a função @include. Por exemplo:

Você pode criar um arquivo modal-register-users.blade.php, onde seu conteúdo é o modal que você precisa e nas views em que você precisa desse modal, você usa @include('modal-register-users').

Documentação: https://laravel.com/docs/master/blade#including-sub-views

Essa é são 2 maneiras de se fazer o que você precisa, acredito que vão te servir muito bem. Como seu intuíto é reaproveitar o máximo, você pode ir quebrando suas necessidades em componentes e ir reutilizando durante sua aplicação.

Caso queira utilizar um framework front-end para o desenvolvimento de sua aplicação, recomendo o VueJS, pois ele segue esse conceito de componentização.

omarkdev avatar Oct 02 '17 03:10 omarkdev

@omarkdev Obrigado pelas sugestões, e estou dando uma olhada no recurso de componentes... e usando um pouco mais para o que preciso, no caso, um formulário de cadastro de usuários. Vamos supor que quero trazer os campos "usuarios, email e demais dados" todos preenchidos, como que passaria um parametro para o component? e dessa maneira dentro dele retornaria os dados?

No demais agradeço a sua ajuda!!!

ronicec avatar Oct 03 '17 12:10 ronicec

Se tiver usando os components do Laravel, existe a funcionalidade de slots, você pode fazer da seguinte maneira:

No componente:

{{ $title }}

Na hora de chamar o componente:

@component('my-component', ['title' => 'My title'])
@endcomponent

Da uma olhada na documentação: https://laravel.com/docs/5.5/blade#components-and-slots

omarkdev avatar Oct 04 '17 02:10 omarkdev