Structure de nos vues (en-têtes et pieds de page)

Dans ce tutoriel nous allons découvrir les « layouts » Blade permettant d'ajouter des headers et des footers à nos vues.

Utilisation des includes

Les includes Blade, comme les includes PHP permettent d'inclure d'autres vues partielles dans nos vues. Nous pouvons utiliser la propriété @include('') de Blade pour inclure une autre vue.

@include('header')

<div class="title m-b-md">
    Bonjour
</div>

@include('footer')

Il ne nous reste plus qu'à créer deux fichiers ressources/views/header.blade.php et ressources/views/footer.blade.php et d'y mettre notre en-tête et notre pied de page.

Utilisation des layouts

Les layouts sont une fonctionnalités de Blade plus intéressante pour réaliser la même chose que précédemment avec les @include(''). Un layout est une simple vue Blade, où nous ajoutons notre en-tête et notre pied de page à la suite. Nous ajoutons ensuite la propriété @yield('') pour indiquer à Blade un emplacement où ajouter une certaine section. Vous pouvez avoir plusieurs @yield('') dans un seul layout, chacun avec un nom différent.

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    @yield('contenu')
</body>
</html>

Nos vues utilisent ensuite ce layout grâce à la propriété @extends('nom-du-fichier-contenant-mon-layout') si le fichier de mon layout est ressources/views/nom-du-fichier-contenant-mon-layout.blade.php. Nous utilisons ensuite @section('') et @endsection pour indiquer à Laravel le contenu que nous souhaitons ajouter à la place du yield correspondant.

@extends('nom-du-fichier-contenant-mon-layout')

@section('contenu')
    <div class="title m-b-md">
        Bonjour
    </div>
@endsection

Cela peut vous sembler complexe à première vue, mais ne vous inquiètez pas, nous allons utiliser ces fonctionnalités dans presque toutes nos vues, les termes deviendront donc très vites naturels.