# Views Dinâmicas com Blade

%[https://www.youtube.com/watch?v=DH35w7xqcbg] 

[![](https://cdn.hashnode.com/res/hashnode/image/upload/v1768490260346/3e02f741-3791-412e-b109-fe48a4571214.jpeg align="center")](https://www.udemy.com/course/logica-de-programacao-com-pascalzim/?referralCode=E547897C16AD4FF23AED)

#### O Que São Views?

Views são uma parte fundamental do padrão MVC (Model-View-Controller) usado no Laravel. Elas são responsáveis por apresentar a interface de usuário e exibir os dados de maneira visualmente atraente.

No Laravel, as views são geralmente escritas usando o Blade, o motor de templates do framework.

#### Introdução ao Blade

Blade é o motor de templates do Laravel que permite usar uma sintaxe simples e limpa para criar views dinâmicas. Ele oferece diversos recursos como herança de templates, inclusão de sub-views, loops, condicionais, entre outros.

##### Criando uma View Simples

As views são armazenadas no diretório `resources/views`. Vamos criar uma view simples chamada `home.blade.php`:

```php-template
<!-- resources/views/home.blade.php -->

<!DOCTYPE html>
<html>
<head>
    <title>Minha Aplicação Laravel</title>
</head>
<body>
    <h1>Bem-vindo ao Laravel!</h1>
</body>
</html>
```

Para retornar essa view de um controlador, você pode usar o método `view`:

```php
public function index()
{ 
   return view('home');
}
```

#### Passando Dados para as Views

Você pode passar dados para as views como um array associativo ou usando o método `with`:

```php
public function index()
{
   $cliente = 'áreadev';
   return view('home', ['cliente' => $cliente]);
}
```

Ou, usando o método `with`:

```php
public function index()
{
    $cliente = 'áreadev';
    return view('home')->with('cliente', $cliente);
}
```

Na view `home.blade.php`, você pode acessar os dados:

```php-template
<!-- resources/views/home.blade.php -->

<!DOCTYPE html>
<html>
<head>
    <title>Minha Aplicação Laravel</title>
</head>
<body>
    <h1>Olá {{ $cliente }}. Bem-vindo ao Laravel!</h1>
</body>
</html>
```

#### Incluindo Sub-Views

Você pode incluir sub-views em suas views principais usando a diretiva `@include`:

```php-template
<!-- resources/views/home.blade.php -->

<!DOCTYPE html>
<html>
<head>
    <title>Página Principal</title>
</head>
<body>
    @include('header')

    @include('footer')
</body>
</html>
```

E então criar os arquivos de sub-view `header.blade.php` e `footer.blade.php`:

```php-template
<!-- resources/views/header.blade.php -->

<header>
    <h1>Cabeçalho do Site</h1>
</header>
```

```php-template
<!-- resources/views/footer.blade.php -->

<footer>
    <p>Rodapé do Site</p>
</footer>
```

#### Diretivas do Blade

Blade oferece várias diretivas para tornar o trabalho com templates mais fácil e intuitivo. Algumas das mais comuns incluem:

* ```php
              // Diretivas: @if, @elseif, @else, @endif:
             @if ($user->email == 'bruno@gmail.com')
                <p>Bem-vindo, {{$user->name}}!</p>
             @else
                <p>Bem-vindo, Usuário!</p>
             @endif
            
            // controller: NomeDoController
            use Illuminate\Support\Facades\Auth;
            
             public function index()
             {
                $user = Auth::user();
                return view('home', compact('user'));
             }
    ```
    
* ```php
              // Diretivas: @foreach
              @foreach ($users as $user)
                  <p>{{ $user->name }}</p>
              @endforeach
    ```
    
* ```php
              // Diretivas: @for, @while
              @for ($i = 0; $i < 10; $i++)
                  <p>Item {{ $i }}</p>
              @endfor
    ```
    
* ```php
              // Diretivas: @switch, @case, @break, @default
              @switch($i)
                  @case(1)
                      Primeiro caso
                      @break
              
                  @case(2)
                      Segundo caso
                      @break
              
                  @default
                      Caso padrão
              @endswitch
    ```
    

Saiba mais:

<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text"><a target="_blank" rel="noopener noreferrer nofollow" href="https://laravel.com/docs/11.x/blade#introduction" style="pointer-events: none">https://laravel.com/docs/11.x/blade#introduction</a></div>
</div>

[![](https://cdn.hashnode.com/res/hashnode/image/upload/v1768490280858/6ff457f4-d196-4a76-8d13-0497f8f953b2.jpeg align="center")](https://www.udemy.com/course/logica-de-programacao-com-pascalzim/?referralCode=E547897C16AD4FF23AED)

### Conclusão

O Blade é uma ferramenta poderosa que facilita a criação e a gestão de views no Laravel. Com inclusão de sub-views, diretivas intuitivas e componentes reutilizáveis, você pode criar interfaces de usuário eficientes e bem estruturadas. Nos próximos tópicos, exploraremos o Eloquent ORM e como trabalhar com banco de dados no Laravel, proporcionando uma aplicação completa e funcional.
