Blade : Personnalisation Header Navigation et Footer

Blade : Personnalisation Header Navigation et Footer

Laravel Blade permet de structurer vos vues en composants réutilisables, simplifiant la maintenance et la personnalisation de votre application. Voici un guide détaillé pour créer un répertoire

resources/views/components

contenant les fichiers

header.blade.php

,

nav.blade.php

, et

footer.blade.php

.

Étape 1 : Création du Dossier des Composants

  1. Créer le répertoire via le terminal :bash
    mkdir resources/views/components 

    ou manuellement en naviguant dans le répertoire

    resources/views

    .

  2. Ajouter les fichiers nécessaires :
    • header.blade.php
    • nav.blade.php
    • footer.blade.php

Étape 2 : Création des Composants

a)

header.blade.php

Contenu du fichier :

blade

<header class="bg-blue-600 text-white py-4"> <div class="container mx-auto flex justify-between items-center"> <h1 class="text-lg font-bold">Laravel 11 Project</h1> <p>Welcome to the best app!</p> </div> </header> 

Explications :

  • bg-blue-600

    : Couleur d’arrière-plan bleue.

  • text-white

    : Texte en blanc.

  • py-4

    : Marges internes verticales (padding) de 1 rem.

  • flex

    et

    justify-between

    : Disposition en flexbox pour espacer les éléments.

b)

nav.blade.php

Contenu du fichier :

blade

<nav class="bg-gray-800 text-white py-2"> <div class="container mx-auto flex justify-between items-center"> <ul class="flex space-x-4"> <li><a href="{{ url('/') }}" class="hover:text-yellow-400">Home</a></li> <li><a href="{{ url('/about') }}" class="hover:text-yellow-400">About</a></li> <li><a href="{{ url('/contact') }}" class="hover:text-yellow-400">Contact</a></li> </ul> <div> @auth <a href="{{ url('/dashboard') }}" class="hover:text-yellow-400">Dashboard</a> @else <a href="{{ route('login') }}" class="hover:text-yellow-400">Login</a> @endauth </div> </div> </nav> 

Explications :

  • space-x-4

    : Ajoute un espacement horizontal de 1 rem entre les liens.

  • @auth

    : Vérifie si l’utilisateur est connecté pour afficher un lien vers le tableau de bord.

  • hover:text-yellow-400

    : Change la couleur du texte en jaune au survol.

c)

footer.blade.php

Contenu du fichier :

blade

<footer class="bg-gray-700 text-white py-4 mt-8"> <div class="container mx-auto text-center"> <p>&copy; {{ date('Y') }} Laravel Project. All rights reserved.</p> <a href="{{ url('/privacy-policy') }}" class="text-blue-400 hover:underline">Privacy Policy</a> </div> </footer> 

Explications :

  • mt-8

    : Ajoute une marge supérieure (margin-top) de 2 rem.

  • text-center

    : Centre le texte horizontalement.

  • text-blue-400 hover:underline

    : Lien bleu avec soulignement au survol.

Étape 3 : Intégration des Composants dans le Layout Principal

  1. Créer ou modifier le fichier
    resources/views/layouts/app.blade.php

    :blade

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>@yield('title', 'Laravel 11 Project')</title> <link rel="stylesheet" href="{{ asset('css/app.css') }}"> </head> <body> <!-- Include Header --> @include('components.header') <!-- Include Navigation --> @include('components.nav') <!-- Main Content --> <main class="container mx-auto py-6"> @yield('content') </main> <!-- Include Footer --> @include('components.footer') <script src="{{ asset('js/app.js') }}"></script> </body> </html> 

Explications :

  • @include('components.header')

    : Inclut le fichier

    header.blade.php

    .

  • @yield('content')

    : Emplacement pour injecter le contenu spécifique à chaque page.

Étape 4 : Configuration de la Route pour la Page d’Accueil

Ajoutez une route dans

routes/web.php

pour rendre accessible la page d’accueil :

php

use Illuminate\Support\Facades\Route; Route::get('/', function () { return view('home'); }); 
  1. Créer le fichier
    resources/views/home.blade.php

    :blade

    @extends('layouts.app') @section('title', 'Home') @section('content') <h1 class="text-2xl font-bold text-center">Bienvenue sur Laravel 11 Project</h1> <p class="text-center mt-4">Commencez à explorer les fonctionnalités.</p> @endsection 

Étape 5 : Compilation des Fichiers CSS et JS

  1. Assurez-vous que Laravel Mix compile vos fichiers CSS et JS :bash
    npm install npm run dev 
  2. Votre fichier
    webpack.mix.js

    doit contenir :javascript

    const mix = require('laravel-mix'); mix.js('resources/js/app.js', 'public/js') .postCss('resources/css/app.css', 'public/css', [ require('tailwindcss'), ]); 

Exemple Complet de Résultat

Page d’accueil accessible via

/

:

  • Header bleu avec le titre et le slogan.
  • Barre de navigation dynamique (liens vers
    Home

    ,

    About

    ,

    Contact

    ).

  • Footer contenant la politique de confidentialité et l’année actuelle.

Avantages :

  • Réutilisabilité : Les composants peuvent être utilisés dans plusieurs mises en page.
  • Clarté : Le code est organisé et maintenable.
  • Flexibilité : Vous pouvez personnaliser chaque composant indépendamment.

 

par