Em Laravel, o layout desempenha um papel significativo na construção da interface do usuário para um aplicativo da web. Um layout representa a estrutura geral de uma página da Web, incluindo seções comuns como header
, footer
e sidebar
. Neste artigo, exploraremos como criar layouts Laravel para criar interfaces flexíveis e sustentáveis.
Primeiramente, vamos criar um layout básico para nosso site. Comece criando um arquivo nomeado app.blade.php
no diretório. Este arquivo servirá como o layout principal de todo o site. resources/views/layouts
Aqui está um exemplo de conteúdo para o app.blade.php
arquivo:
<!DOCTYPE html>
<html>
<head>
<title>@yield('title')</title>
<link rel="stylesheet" href="{{ asset('css/app.css') }}">
</head>
<body>
<header>
<h1>Header</h1>
</header>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
</nav>
<main>
@yield('content')
</main>
<footer>
<p>Footer</p>
</footer>
<script src="{{ asset('js/app.js') }}"></script>
</body>
</html>
Neste layout, usamos as @yield
diretivas para definir seções dinâmicas dentro do layout. Por exemplo, @yield('title')
permite que a criança substitua e defina o título da página. Da mesma forma, permite que a criança insira o conteúdo principal da página. views @yield('content')
views
Depois que o layout é criado, podemos criar filhos que utilizam esse layout. Por exemplo, para criar uma página com layout semelhante, crie um arquivo nomeado no diretório. Este arquivo estenderá o layout e definirá o conteúdo específico da página: views about
about.blade.php
resources/views
app.blade.php
about
@extends('layouts.app')
@section('title', 'About')
@section('content')
<h2>About Page</h2>
<p>This is the about us page.</p>
@endsection
No exemplo acima, usamos a @extends
diretiva para herdar o app.blade.php
layout. Em seguida, usamos a @section
diretiva para definir o conteúdo específico para as seções title
e content
da página.
Por fim, precisamos definir as rotas para vincular as URLs aos respectivos arquivos. views
Por exemplo, no routes/web.php
arquivo, você pode adicionar as seguintes rotas:
Route::get('/', function() {
return view('welcome');
});
Route::get('/about', function() {
return view('about');
});
Neste exemplo, o URL "/" está vinculado ao welcome.blade.php
view, enquanto o /about
URL está vinculado ao about.blade.php
view.
Concluindo, criar layouts Laravel permite que você crie uma interface compartilhada para seu aplicativo da web e gerencie seções comuns como header
, footer
e sidebar
. Usando layouts e filhos, você pode construir interfaces flexíveis e sustentáveis em. views Laravel