Blog Bugginho Academy

Migrando do Codeigniter para o Laravel 5.3 (Parte 5)

Dando continuidade ao artigo, agora aprenderemos com criar um CRUD completo com validação de formulário. Para esse exemplo eu montei um layout básico usando o Twitter Bootstrap 3, mas você não é obrigado a usa-lo se não quiser 😉

Faça o download do layout base aqui

Montando a Master Page

Vamos aprender agora um recurso muito bacana do Blade que é são os “Templates”. Para criar um Template no Blade é muito fácil. Vamos criar uma nova View chamada “template.blade.php” (Esse arquivo pode ter o nome que você desejar) e vamos salvar em “resources/views/”. Digite o seguinte código nele:

Como o código é um pouco grande, coloquei-o no Gist
https://gist.github.com/PHPauloReis/f40f97a1b5193895342d81b4a44e256c

Note que na linha 8 há o seguinte código

Essa linha evita que quando naveguemos para links mais internos, não dê problema com o path dos CSS e JS da página

Na linha 50 há o seguinte código

Ele é responsável por informar para o Laravel onde o conteúdo filho deverá ser carregado.

Lembra da nossa View “resources/views/client/clients_list.blade.php”? Abra ela e altere o seu conteúdo para

Como o código é um pouco grande, coloquei-o no Gist
https://gist.github.com/PHPauloReis/dfde8909a8a1b0756271298d496519e8

Vamos analisar esse código.

Logo na linha 1 temos o código:

A grosso modo essa linha diz para o Laravel “Esse arquivo vai ser filho de ‘template.blade.php’, ou seja, sempre que você carregar essa View, ela carregará junto o ‘template.blade.php'”

Logo depois, na linha 2, temos o código

lembra que no arquivo ‘template.blade.php’ tínhamos  um @yield() que informava para o Laravel onde o conteúdo filho deverá ser carregado? Pois é, o que estiver envolvido em @Section, será renderizado ali dentro.

Um pouco mais abaixo na linha 20, temos o seguinte código

O @if é uma condicional do Blade (Ainda não deu uma olhada no Blade?), funciona exatamente como um if padrão do PHP, mas ele só é interpretado pelo Blade. Note que não utilizamos um count() nativo do PHP. O Eloquent, quando faz uma busca no banco de dados, ele não devolve um Array de dados, ele retorna uma Collection e uma Collection no Laravel tem uma série de metodos muito úteis, vale a pena dar uma olhada na documentação.

Logo mais abaixo temos o seguinte código:

Ele mostra uma Foreach do Blade, que funciona exatamente como um Foreach do PHP, porem é interpretado pelo Blade. A cada Iteração, a variável $client vai receber um objeto do tipo Client.

O restante do código eu acho que é alto explicativo, mas se tiverem alguma dúvida é só postar ai nos comentários.

Você deve estar se perguntado. Ok, blz… Mas e os outros registros? Cadê? Como eu faço uma paginação?

Bem, é super simples (como tudo no Laravel). Vá na sua View “clients_list.blade.php” e adicione o seguinte bloco de código abaixo da sua tabela:

Execute “http://localhost:8000/client” e veja novamente a mágica acontecer 🙂

Criando o formulário de cadastro de clientes

Essa parte é também muito fácil e muito parecido com o parte anteior, porem antes de prosseguir vamos fazer só 2 coisinhas.

Primeiro: Acesse o template e altere essas linhas

Segundo: Acesse o arquivo de rotas “routes/web.php” e crie 2 novas rotas

Prontinho agora que já temos nossas rotas apontando para o nosso Controller, o que precisamos fazer agora? Isso mesmo, criar o método “create” que vai carregar o nosso formulário

Vamos agora criar a nossa View “client_create.blade.php” no diretótio “resources/views/client/create_client.blade.php”

Como o código é um pouco grande, coloquei-o no Gist
https://gist.github.com/PHPauloReis/d5c3caf3233171ed57837d10bc9cc5fe

E, prontinho. Se você acessar agora “http://localhost:8000/client/create“, você já poderá ver o seu formulário renderizado, bonitinho 🙂

É, esse post acabou ficando maior do que eu esperava, então vamos dar continuidade no Post seguinte. Ok?

Espero que tenham gostado. Na próxima parte desse artigo vamos dar continuidade na construção do nosso CRUD.

Até a próxima ????

 

Paulo Reis

Comentar

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Your Header Sidebar area is currently empty. Hurry up and add some widgets.