Passer des données aux vues

29 mars 2025
21:32
débutant

Passer des données de web.php aux vues avec Laravel 12

Bienvenue dans ce troisième épisode de notre série sur Laravel 12 ! 🚀 Aujourd’hui, nous allons voir comment passer des données de web.php aux vues et les afficher dynamiquement avec Blade.

Introduction

Laravel permet de passer des données à une vue via une route définie dans web.php. Nous allons voir comment structurer ces données et les afficher proprement.

📌 Au programme :

  • ✅ Création de routes avec des données statiques
  • ✅ Passage des données aux vues avec compact()
  • ✅ Utilisation de Arr::get() pour récupérer un élément spécifique

Exemple : Passer des recettes à une vue

Dans routes/web.php, nous allons définir une liste de recettes et les afficher dans une vue.

1. Créer une route pour afficher toutes les recettes

use Illuminate\Support\Facades\Route;

Route::get('/recipes', function () {
    $recipes = [
        1 => ['title' => 'Spaghetti Carbonara', 'ingredients' => ['Pâtes', 'Oeufs', 'Fromage', 'Lardons']],
        2 => ['title' => 'Poulet Curry', 'ingredients' => ['Poulet', 'Lait de coco', 'Curry']],
        3 => ['title' => 'Sauté de légumes', 'ingredients' => ['Brocoli', 'Carottes', 'Sauce soja', 'Ail']]
    ];

    return view('recipes.index', compact('recipes'));
});

2. Créer une route pour afficher une recette spécifique

use Illuminate\Support\Arr;

Route::get('/recipe/{id}', function ($id) {
    $recipes = [
        1 => ['title' => 'Spaghetti Carbonara', 'ingredients' => ['Pâtes', 'Oeufs', 'Fromage', 'Lardons']],
        2 => ['title' => 'Poulet Curry', 'ingredients' => ['Poulet', 'Lait de coco', 'Curry']],
        3 => ['title' => 'Sauté de légumes', 'ingredients' => ['Brocoli', 'Carottes', 'Sauce soja', 'Ail']]
    ];

    $recipe = Arr::get($recipes, $id, ['title' => 'Recette non trouvée', 'ingredients' => []]);

    return view('recipes.show', compact('recipe'));
});

Création des vues

resources/views/recipes/index.blade.php

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Liste des Recettes</title>
</head>
<body>
    <h1>Recettes</h1>
    <ul>
        @foreach ($recipes as $id => $recipe)
            <li>
                <a href="{{ url('/recipe/' . $id) }}">{{ $recipe['title'] }}</a>
            </li>
        @endforeach
    </ul>
</body>
</html>

resources/views/recipes/show.blade.php

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ $recipe['title'] }}</title>
</head>
<body>
    <h1>{{ $recipe['title'] }}</h1>
    <h2>Ingrédients :</h2>
    <ul>
        @foreach ($recipe['ingredients'] as $ingredient)
            <li>{{ $ingredient }}</li>
        @endforeach
    </ul>
    <a href="{{ url('/recipes') }}">Retour aux recettes</a>
</body>
</html>

Conclusion

Dans cet épisode, nous avons appris à :

  • Créer une route pour passer un tableau de données à une vue
  • Utiliser compact() pour envoyer les données à la vue
  • Utiliser Arr::get() pour récupérer une recette spécifique et gérer les erreurs

👉 Dans le prochain épisode, nous verrons comment envoyer et traiter des formulaires avec Laravel 12 !

Vidéos de la playlist

Besoin d'aide avec Laravel ?

Réservez une session de mentorat personnalisée pour accélérer votre apprentissage et résoudre vos problèmes techniques.

Réserver une session de mentorat
Logo Laravel Jutsu

Formation Laravel 12 en Français

Tutoriels vidéo et astuces pour maîtriser Laravel 12.

Laravel 12PHP 8.3Formation PHPTutoriels BackendDéveloppement Web

© 2025 apprendre-laravel-12.net