Glossário:
- Tutorial Laravel para iniciantes - Parte 01 [Instalação e configuração]
- Tutorial Laravel para iniciantes - Parte 02 [Primeiro Formulário e MVC]
- Tutorial Laravel para iniciantes - Parte 03 [Configuração e manipulação do MySQL]
- Tutorial Laravel para iniciantes - Parte 04 [Controller e Injeção de dependência]
- Tutorial Laravel para iniciantes - Parte 05 [Validar formulário com FormRequest]
- Tutorial Laravel para iniciantes - Parte 06 [Relacionando models com o Eloquent ORM, criando migrations e seeds]
- Tutorial Laravel para iniciantes - Parte 07 [Criando uma Camada de autenticação]
- Tutorial Laravel para iniciantes - Parte 08 [Entendendo view com @extends, @yield e @section]
app.blade.php
O app.blade.php é responsável por elementos comuns nas páginas, como cabeçalho, mensagens de erro e menus, como vimos o Tutorial anterior quando usamos o comando "php artisan make:auth", automaticamente já foram criadas algumas view e caso tenha seguido o post anterior já teremos o app.blade.php já criado no diretório resources/views/layouts/.
Agora vamos abrir as nossas view e entender melhor! Vamos abri o app.blade.php:
Como já foi criado tutorial anterior não alteraremos nada, caso não tenha criado crie o app.blade.php e cole esse conteúdo a cima.
Como no exemplo anterior acabamos atropelando essas explicações nesse post irei explicar um pouco melhor sobre section(), extends() e yield();
Vamos a explicações:
Criei 3 arquivos, para criamos um ambiente mais completo com exclusão do post anterior. Vamos falar sobre individualmente e apontando cada diretiva.
@yield(''); ele é responsável por imprimir os valores, imagine o seguinte o @yield('title') se definirmos uma outra pagina o section('title', 'Titulo da Pagina') ele irá imprimir esse valor na @yield('title').
@section(''); é aqui que definimos campos de nossas view, imagine o seguinte, preciso exibir um conteúdo dinâmico de uma página, mas não seria muito bom reescrevermos todo o html de uma página para cada página que criarmos, é aqui que o @section() entra, vamos criar um menu, pois na maioria das páginas ele se repete, então criamos o:
No exemplo a cima criamos uma @section('menu') que irá receber um menu de exemplo, agora como iremos imprimir esse conteúdo em nosso caso, basta usamos o @yield('menu') para exibirmos esse menu, assim limitamos a necessidade de editarmos apenas um menu para toda a nossa aplicação.
@extends(); define a qual view o arquivo.blade.php se estende, isso é, quando usamos o @extends('layouts.app') definimos que o view em si é uma extensão do arquivo declarado no @extends() no nosso exemplo ao chamarmos o diretório layouts e o view app.blade.php, um outro exemplo, @extends('layouts.teste'), isso é, estendemos o view teste.blade.php.
Agora vamos abrir as nossas view e entender melhor! Vamos abri o app.blade.php:
Como já foi criado tutorial anterior não alteraremos nada, caso não tenha criado crie o app.blade.php e cole esse conteúdo a cima.
@yield('')
A diretiva @yield('') é usada para exibir o conteúdo de uma determinada sessão. Uma outra maneira de explicar, quando usamos a @yield('') seria algo parecido com echo "$content"; (Um exemplo grotesco onde $content seria algum conteúdo html).@section('')
Quando declarado um valor em @section('') ele basicamente cria uma instância de valor para que posa ser exibido em @yield('').@extends('')
Define uma uma view filho, isso é, quando declaramos alguma @section('')definimos e queremos relacionar a alguma view, declaramos ela como @extends('') dessa view em questão.Como no exemplo anterior acabamos atropelando essas explicações nesse post irei explicar um pouco melhor sobre section(), extends() e yield();
Vamos a explicações:
Criei 3 arquivos, para criamos um ambiente mais completo com exclusão do post anterior. Vamos falar sobre individualmente e apontando cada diretiva.
app.blade.php
Aqui basicamente criamos o corpo de nossa aplicação, por exemplo, temos toda a estrutura da página, com exclusão do menu, corpo e titulo, os qual normalmente variam de uma página a outra. Aqui temos as seguintes diretivas; @yield(''), @section('') e @show, o que elas estão fazendo aqui ?@yield(''); ele é responsável por imprimir os valores, imagine o seguinte o @yield('title') se definirmos uma outra pagina o section('title', 'Titulo da Pagina') ele irá imprimir esse valor na @yield('title').
@section(''); é aqui que definimos campos de nossas view, imagine o seguinte, preciso exibir um conteúdo dinâmico de uma página, mas não seria muito bom reescrevermos todo o html de uma página para cada página que criarmos, é aqui que o @section() entra, vamos criar um menu, pois na maioria das páginas ele se repete, então criamos o:
No exemplo a cima criamos uma @section('menu') que irá receber um menu de exemplo, agora como iremos imprimir esse conteúdo em nosso caso, basta usamos o @yield('menu') para exibirmos esse menu, assim limitamos a necessidade de editarmos apenas um menu para toda a nossa aplicação.
@extends(); define a qual view o arquivo.blade.php se estende, isso é, quando usamos o @extends('layouts.app') definimos que o view em si é uma extensão do arquivo declarado no @extends() no nosso exemplo ao chamarmos o diretório layouts e o view app.blade.php, um outro exemplo, @extends('layouts.teste'), isso é, estendemos o view teste.blade.php.
Esse post será o último dessa linha focado na criação de uma página de contato, agora irei estudar mais um pouco e criar novos posts mais completos sobre Laravel, atualmente estou lendo o livro chamado Laravel para Ninjas o qual também irei fazer uma resenha assim que terminar a leitura. E vamos aos estudos pessoal!
Se vocês gostaram desse Post não deixe de compartilhar com seus amigos!!!
E para não perder nenhuma novidade nos sigam nas redes sociais:
Twitter: @Bulfaitelo
Facebook: Bulfaitelo Project
Blogger: Bulfaitelo Project