Séparation du contenu de la vue

Il est souvent très pratique de mettre dans un fichier séparer certains éléments qui ne changent jamais comme la navbar et le footer, et de simplement inclure ce fichier sur chaque page.

Dans cet exemple, je vais créer un sous dossier dans views qui se nomme layouts qui va contenir les pages de base à inclure.

Création de la page de base qui sera inclus

Le fichier se nomme app.blade.php (resources/views/layouts/app.blade.php)

    <!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ $title}} | Laravel</title>
</head>
<body>
    @yield ('content')
</body>
</html>

@yield ('content') va definir l'endroit où l'on va injecter le contenu de la section 'content'

Création de la page qui va inclure la base

Voici le contenu de la page accueil (resources/views/accueil.blade.php).

  @extends ('layouts.app')

  @section ('content')
  <h1>{{ $title }}</h1>
  @endsection

@extends ('layouts.app') : on inclut la vue layouts/app.blade.php.

@section ('content') : On définit la section content qui est le contenu qui change de la vue app.blade.php.

@endsection : fin de la section content.

Inclure une vue dans la vue de base.

    <body>
    @include ('partials.navbar')
    @yield ('content')
</body>

@include ('partials.navbar') : va inclure la vue layouts/partials/navbar.blade.php

Les conditions de base

Le IF

    @if (count($records) === 1)
    Cas 1
    @elseif (count($records) > 1)
    Cas 2
    @else
    Cas 3
@endif

Le Switch

    @switch($i)
    @case(1)
        First case...
        @break

    @case(2)
        Second case...
        @break

    @default
        Default case...
    @endswitch

Le Foreach

    @foreach ($users as $user)
    <li>{{ $user->name }}</li>
    @endforeach

Options disponibles

    @continue($user->type == 1)
    @break($user->number == 5)

Le For

    @for ($i = 0; $i < 10; $i++)
    The current value is {{ $i }}
    @endfor

Le while

    @while (true)
    <p>I'm looping forever.</p>
    @endwhile