Passer au contenu principal

Introduction

Retourner l’intégralité d’un document HTML sous forme de chaîne depuis une route ou un contrôleur n’est pas réaliste. Les vues vous permettent de placer tout le HTML dans des fichiers séparés. Les vues séparent la logique du contrôleur et de l’application de la logique de présentation, et sont stockées dans le répertoire resources/views. Avec Laravel, on écrit généralement les vues à l’aide du langage de template Blade.
<!-- resources/views/greeting.blade.php -->
<html>
    <body>
        <h1>Bonjour, {{ $name }}</h1>
    </body>
</html>
Cette vue est stockée dans resources/views/greeting.blade.php et peut être retournée avec le helper global view.
Route::get('/', function () {
    return view('greeting', ['name' => 'Taro']);
});

Création de vues

Pour créer une vue, placez un fichier portant l’extension .blade.php dans le répertoire resources/views, ou utilisez la commande Artisan.
php artisan make:view greeting
L’extension .blade.php indique au framework que le fichier contient un template Blade.

Retour d’une vue

Une fois la vue créée, vous pouvez la retourner depuis une route ou un contrôleur avec le helper global view.
Route::get('/', function () {
    return view('greeting', ['name' => 'Taro']);
});
Vous pouvez également utiliser la façade View.
use Illuminate\Support\Facades\View;

return View::make('greeting', ['name' => 'Taro']);
Le premier argument du helper view correspond au nom du fichier de vue dans le répertoire resources/views. Le second argument est un tableau de données à mettre à disposition de la vue.

Répertoires de vues imbriqués

Les vues peuvent être imbriquées dans des sous-répertoires de resources/views. Pour référencer une vue imbriquée, utilisez la notation « point ». Par exemple, une vue stockée dans resources/views/admin/profile.blade.php peut être retournée ainsi :
return view('admin.profile', $data);
N’incluez pas le caractère . dans les noms de répertoires de vues.

Retour de la première vue existante

La méthode first de la façade View retourne la première vue existante parmi un tableau de vues.
use Illuminate\Support\Facades\View;

return View::first(['custom.admin', 'admin'], $data);

Vérification de l’existence d’une vue

Pour vérifier qu’une vue existe, utilisez la méthode exists de la façade View.
use Illuminate\Support\Facades\View;

if (View::exists('admin.profile')) {
    // ...
}

Transmission de données aux vues

Comme vu dans l’exemple précédent, vous pouvez transmettre un tableau de données à la vue afin de les utiliser.
return view('greetings', ['name' => 'Hanako']);
Les données doivent être un tableau clé/valeur. Dans la vue, vous accédez à chaque valeur via sa clé. Vous pouvez également ajouter des données individuellement avec la méthode with. with retourne une instance de l’objet vue, ce qui permet de chaîner les appels.
return view('greeting')
    ->with('name', 'Hanako')
    ->with('occupation', 'Ingénieure');

Partager des données avec toutes les vues

Pour partager des données avec toutes les vues, utilisez la méthode share de la façade View. Placez généralement ce code dans la méthode boot d’un service provider.
<?php

namespace App\Providers;

use Illuminate\Support\Facades\View;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Amorçage des services de l'application.
     */
    public function boot(): void
    {
        View::share('appName', 'MyApp');
    }
}

Optimisation des vues

Par défaut, les vues Blade sont compilées à la demande. Cette compilation lors de la requête peut légèrement impacter les performances. La commande Artisan view:cache permet de pré-compiler toutes les vues utilisées par l’application. Il est recommandé de l’exécuter dans le cadre de votre processus de déploiement.
php artisan view:cache
Pour vider le cache des vues, utilisez la commande suivante :
php artisan view:clear

Prochaines étapes

Templates Blade

Découvrez comment construire des vues dynamiques à l’aide de la syntaxe Blade.
Dernière modification le 13 juillet 2026