Crud com Laravel - #2 MVC, Templates e Rotas
04/01/2020No tutorial de hoje abordaremos a estrutura MVC, os templates e as rotas no framework Laravel. Entenderemos como funciona esses aspectos no sistema.
Iniciando com Laravel
O primeiro passo pra trabalhar com Laravel é acionar nosso servidor local, no caso estamos utilizando o Wamp Server.
Posteriormente iremos no menu iniciar e digitaremos cmd para entrar no terminal. No terminal acessaremos a raiz do nosso projeto e iniciaremos o nosso servidor do Laravel:
cd c:/wamp64/www/
php artisan serve
Para verificarmos se deu tudo certinho basta acessarmos pelo firefox o endereço http://localhost:8000
Sistema de Templates Blade
Os templates ficam dentro diretório resource/views e eles tem o nome formado da seguinte maneira: nomedoarquivo.blade.php
Rotas
Para garantir que o usuário só acesse o que você permita no sistema, ele trabalha com rotas pré-definidas. Essas rotas ficam dentro da pasta routes/web.php
Controllers
Os controllers é que comandam o acesso seguro as rotas, portanto, o ideal é que as rotas sejam gerenciadas por eles, conforme o exemplo abaixo:
routes/web.phpRoute::get('/', 'BookController@index');
Repare no código acima que estou dizendo que quando o usuário requisitar a página / eu acionarei o BookController que por sua vez acionará o método index.
Agora vamos criar o nosso controller. Para isso, acessaremos o terminal novamente e rodaremos o comando:
php artisan make:controller BookController --resource
BookController
public function index()
{
return view('index');
}
Template Padrão
Para que não precisemos criar toda hora o html5 no nosso código, podemos criar um template padrão com aquelas partes do código que não se repetem e mudar apenas o desejado nas demais páginas. Esse procedimento facilita bastante a manutenção do sistema.
Para fazer o template padrão iremos criar o diretório templates dentro da pasta views. Dentro desse novo diretório vamos criar o arquivo template.blade.php e vamos colocar dentro dele aqueles códigos que se manterão constantes no nosso sistema. Veja abaixo:
<!doctype html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Crud com Laravel</title>
<link rel="stylesheet" href="{{url('assets/bootstrap/css/bootstrap.min.css')}}">
</head>
<body>
@yield('content')
</body>
</html>
No código acima, estamos incluindo dentro do body a seção content que será referenciada nos outros arquivos, veja:
views/index.blade.php@extends('templates.template')
@section('content')
<h1 class="text-center">Crud</h1>
<hr>
@endsection
Bootstrap
Aproveitaremos a oportunidade e já baixaremos o framework frontend Bootstrap pra nos agilizar a estilização do layout. Para isso, baixe o Bootstrap e salve-o dentro da pasta public/assets
No código html acima, do nosso template padrão, você pode reparar que já linkamos o bootstrap também.
Por hoje é só! Sucesso nos códigos e na vida!!!