O Blade é o mecanismo de templates (views) padrão no Laravel. Ele permite que você crie e exiba facilmente as visualizações do seu aplicativo de forma dinâmica, incorporando código PHP no HTML. O Blade facilita a separação da lógica do controlador das visualizações, tornando o desenvolvimento mais organizado e legível.
Vamos usar as rotas web definidas no exemplo anterior, associando-as ao Blade para criar as visualizações correspondentes.
Exemplo usando Blade:
Crie um arquivo chamado index.blade.php
no diretório resources/views/users/
.
<!-- resources/views/users/index.blade.php -->
@extends('layout')
@section('content')
<h1>Lista de Usuários</h1>
<ul>
@foreach ($users as $user)
<li>
<a href="{{ route('users.show', ['id' => $user->id]) }}">
{{ $user->name }}
</a>
</li>
@endforeach
</ul>
@endsection
Neste exemplo, estendemos o layout principal (que ainda não criamos, mas criaremos em seguida) usando a diretiva @extends('layout')
. Em seguida, criamos um conteúdo específico para esta view usando a diretiva @section('content')
. Usamos a diretiva @foreach
para iterar sobre a lista de usuários e exibir seus nomes como links para a visualização de detalhes.
Crie um arquivo chamado show.blade.php
no diretório resources/views/users/
.
<!-- resources/views/users/show.blade.php -->
@extends('layout')
@section('content')
<h1>Detalhes do Usuário</h1>
<p><strong>Nome:</strong> {{ $user->name }}</p>
<p><strong>E-mail:</strong> {{ $user->email }}</p>
<p><strong>Status:</strong> {{ $user->status }}</p>
<a href="{{ route('users.index') }}">Voltar para a lista de usuários</a>
@endsection
Neste exemplo, novamente estendemos o layout principal e criamos um conteúdo específico para esta view. Exibimos os detalhes do usuário usando os dados passados do controlador através da variável $user
.
Crie um arquivo chamado layout.blade.php
no diretório resources/views/
.
<!-- resources/views/layout.blade.php -->
<!DOCTYPE html>
<html>
<head>
<title>Meu Aplicativo Laravel</title>
</head>
<body>
<div class="container">
@yield('content')
</div>
</body>
</html>
Este é o layout principal que todas as visualizações herdarão. Neste exemplo, definimos um layout simples com um título e um contêiner onde o conteúdo específico de cada view será inserido usando a diretiva @yield('content')
.
Rotas para as views:
Agora, precisamos associar as rotas web.
// routes/web.php
use App\\\\Http\\\\Controllers\\\\UserController;
Route::get('/users', [UserController::class, 'index'])->name('users.index');
Route::get('/users/{id}', [UserController::class, 'show'])->name('users.show');
Com isso, as rotas /users
e /users/{id}
estão associadas aos métodos index()
e show($id)
do controlador UserController
, respectivamente. Quando essas rotas são acessadas, o controlador retorna as visualizações Blade correspondentes.
Dessa forma, você criou uma estrutura simples de exibição usando o Blade no Laravel. As views são uma parte importante do desenvolvimento em Laravel, e o Blade torna a criação e exibição de páginas dinâmicas muito mais fácil e eficiente. Você pode adicionar mais lógica às suas visualizações, como condições, loops e mais, para criar páginas ricas e interativas para seus usuários. Lembre-se de consultar a documentação oficial do Laravel para obter mais informações detalhadas sobre o Blade e todas as suas funcionalidades.