Laravel
Models Migration Relation
Introduction Installation Projet:Structure Strucutre,model,migration Migration,Models,Relation Artisan CLI Migrations:Exemples Models:Exemples Relations:Exemples 1 Relations:Exemples 2
Les Relations
BelongsTo HasOne HasMany BelongsToMany HasManyThrough
Exemples des Relations
Relations:oneToMany,ManyToMany... Relations:Exemples
Exercices
Exercice 1 Exercice 2
Controllers Views Routes
Routes,Controller,Model,view
Les Routes
Définir:Routes Routes avec Paramètres Routes nommées Groupes de routes
Les Controllers
Les Controllers Les Contrôleurs de Ressources
Les Vues
Vues et Blade Templates Blade Layouts et Sections Sous-vues Composants et Slots Contrôles de flux
MVC :CRUD
CRUD: Produit CRUD: Etudiant CRUD: Car CRUD,Recherche: Book
Validation
Exemple :Projets
ORM:Eloquent
Exemple :Transport
Api:Laravel +React
Middleware

Seeders & Factories
Exemples :EFM

Authenfication
TP:Schools Management
Authenfication:React
Layouts
Exercices





Projet Gestion des transport et livraision

Réalisé par :Oumaima Birouk

les questions:
  • 1.Créer les models des tables : Camion , Chauffeur ,Permis, Livraison
  • 2.Créer les migration des models
  • 3.Créer les Controllers avec les méthodes Ajouter,AfficherList,Supprimer ,modifier,mettreAjour pour les models suivant (2pts) Camion, Livraision
  • 4.Créer les vues suivant pour le controller Livraision Ajouter, AfficherListeLivraison, Modifier Supprimer
  • 5.Afficher pour chaque chauffeur la liste des ses camions
  • 6.Afficher la listes des camions pour une ville de départ sélectionnée
  • 7.Afficher des voyage d’une date données
  • 8.Afficher le nombre de voyage pour chaque chauffeur
  • 9.Afficher la liste des camions arrivés dans une ville sélectionnée
  • 10.Afficher la liste des camions les plus utilisés

Models

Camion model


    <?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Camion extends Model
{
    protected $table = 'camions';
    protected $primaryKey = 'matricule';
    protected $timestemps = true;
    protected $fillable = ['marque','photo'];
    public function livraisons() {
        return $this->hasMany(Livraison::class,'matricule','matricule');
    }
    use HasFactory;
}

    

Chauffeur model


    <?php

    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Factories\HasFactory;
    use Illuminate\Database\Eloquent\Model;
    
    class Chauffeur extends Model
    {
        protected $tabel = 'chauffeurs';
        protected $primarykey = 'idCh';
        protected $fillable = ['nom','prenom'];
        protected $timestemps = true;
        public function permis() {
            return $this->hasMany(Permis::class,'idCh','idCh');
        }
        public function livraisons() {
            return $this->hasMany(Livraison::class,'idCh','idCh');
        }
        use HasFactory;
    }
                

Permis model


    <?php

    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Factories\HasFactory;
    use Illuminate\Database\Eloquent\Model;
    
    class Permis extends Model
    {
        protected $table  = 'permis';
        protected $primarykey = 'numero';
        protected $fillable = ['type','dateExpiration','idCh'];
        protected $timestemps = true;
        use HasFactory;
    }
            

Livraison model


    <?php

    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Factories\HasFactory;
    use Illuminate\Database\Eloquent\Model;
    
    class Livraison extends Model
    {
        protected $table = 'livraisons';
        protected $primaryKey = 'idL';
        protected $fillable = ['date','villeDepar','villeArivee','ArriveOuNon','idCh','matricule'];
        public function chauffeur() {
            return $this->belongsTo(Chauffeur::class,'idCh','idCh');
        } 
        public function camion() {
            return $this->belongsTo(Camion::class,'matricule','matricule');
        } 
        use HasFactory;
    }
            

Migrations

Camion mogration


        <?php

        use Illuminate\Database\Migrations\Migration;
        use Illuminate\Database\Schema\Blueprint;
        use Illuminate\Support\Facades\Schema;
        
        return new class extends Migration
        {
            /**
             * Run the migrations.
             */
            public function up(): void
            {
                Schema::create('camions', function (Blueprint $table) {
                    $table->id('matricule');
                    $table->string('marque');
                    $table->string('photo');
                    $table->timestamps();
                });
            }
        
            /**
             * Reverse the migrations.
             */
            public function down(): void
            {
                Schema::dropIfExists('camions');
            }
        };
        
    

Chauffeur mogration


        <?php

        use Illuminate\Database\Migrations\Migration;
        use Illuminate\Database\Schema\Blueprint;
        use Illuminate\Support\Facades\Schema;
        
        return new class extends Migration
        {
            /**
             * Run the migrations.
             */
            public function up(): void
            {
                Schema::create('chauffeurs', function (Blueprint $table) {
                    $table->id('idCh');
                    $table->string('nom');
                    $table->string('prenom');
                    $table->timestamps();
                });
            }
        
            /**
             * Reverse the migrations.
             */
            public function down(): void
            {
                Schema::dropIfExists('chauffeurs');
            }
        };
        
    

Permis mogration


        <?php

        use Illuminate\Database\Migrations\Migration;
        use Illuminate\Database\Schema\Blueprint;
        use Illuminate\Support\Facades\Schema;
        
        return new class extends Migration
        {
            /**
             * Run the migrations.
             */
            public function up(): void
            {
                Schema::create('permis', function (Blueprint $table) {
                    $table->id('numero');
                    $table->string('type');
                    $table->date('dateExpiration');
                    $table->unsignedBigInteger('idCh');
                    $table->timestamps();
                    $table->foreign('idCh')->references('idCh')->on('chauffeurs')->onDelete('cascade');
                });
            }
        
            /**
             * Reverse the migrations.
             */
            public function down(): void
            {
                Schema::dropIfExists('permis');
            }
        };
        
        
    

Livraison mogration


        <?php

        use Illuminate\Database\Migrations\Migration;
        use Illuminate\Database\Schema\Blueprint;
        use Illuminate\Support\Facades\Schema;
        
        return new class extends Migration
        {
            /**
             * Run the migrations.
             */
            public function up(): void
            {
                Schema::create('livraisons', function (Blueprint $table) {
                    $table->id('idL');
                    $table->date('date');
                    $table->string('villeDepar');
                    $table->string('villeArivee');
                    $table->string('ArriveOuNon');
                    $table->unsignedBigInteger('idCh');
                    $table->unsignedBigInteger('matricule');
                    $table->foreign('idCh')->references('idCh')->on('chauffeurs')->onDelete('cascade');
                    $table->foreign('matricule')->references('matricule')->on('camions')->onDelete('cascade');
        
                    $table->timestamps();
                });
            }
        
            /**
             * Reverse the migrations.
             */
            public function down(): void
            {
                Schema::dropIfExists('livraisons');
            }
        };
        
        
    

Controlers

Camion Controler


        <?php

        namespace App\Http\Controllers;
        
        use Illuminate\Http\Request;
        use App\Models\Camion;
        use App\Models\Chauffeur;
        use App\Models\Livraison;
        use Illuminate\Support\Facades\DB;
        
        
        class camionController extends Controller
        {
            public function ajouter() {
                return view('gestionLivraison.ajouterCamion');
            }
            public function validerAjouter(Request $request) {
                $image = $request->file('photo');
                $type = $image->getClientOriginalExtension();
                if($type != 'jpg' and $type != 'png' and $type != 'jpeg'){
                    return back()->with('imgError',"l'image doit  etre jpg,png,jpeg ");
                } else {
                    $numeroUnique = uniqid();
                    $image->move('images',$numeroUnique.'_'.$image->getClientOriginalName());
                    $camion = $request->post();
                    $camion['photo']="images/".$numeroUnique."_".$image->getClientOriginalName();
                    Camion::create($camion);
                    return back()->with('msg',"camion  bien ajouté");
                }
            }
            public function afficherListe() {
                $listeCamion = Camion::all();
                return view('gestionLivraison.listeCamion',compact('listeCamion'));
            }
            public function camionListeParChauffeur() {
                $listeChauffeur = Chauffeur::all();
                return view('gestionLivraison.listeCamionParChauffeur',compact('listeChauffeur'));
            }
            public function camionListeParVille() {
                $listeCamion = Camion::all();
                $listeville = DB::Select('SELECT DISTINCT(villeDepar) FROM livraisons');
                return view('gestionLivraison.listeCamionParVille',compact('listeville','listeCamion'));
            }
            public function afficherCamionListeParVille(Request $request) {
                $ville = $request->post('ville');
                $listeCamion = DB::select('SELECT c.matricule , c.marque , c.photo FROM camions c
                INNER JOIN livraisons l ON l.matricule = c.matricule
                WHERE l.villeDepar = "' . $ville.'";');
                $listeville = DB::Select('SELECT DISTINCT(villeDepar) FROM livraisons');
                return view('gestionLivraison.listeCamionParVille',compact('listeville','listeCamion'));
            }
            public function camionListeParVilleArrive() {
                $listeCamion = DB::select('SELECT c.matricule , c.marque , c.photo FROM camions c
                INNER JOIN livraisons l ON l.matricule = c.matricule
                WHERE l.ArriveOuNon = "oui" ');
                $listeville = DB::Select('SELECT DISTINCT(villeDepar) FROM livraisons 
                WHERE ArriveOuNon = "oui" ');
                return view('gestionLivraison.listeCamionParVilleArrive',compact('listeville','listeCamion'));
            }
            public function afficherCamionListeParVilleArrive(Request $request) {
                $ville = $request->post('ville');
                $listeCamion = DB::select('SELECT c.matricule , c.marque , c.photo FROM camions c
                INNER JOIN livraisons l ON l.matricule = c.matricule
                WHERE l.ArriveOuNon = "oui"
                AND l.villeDepar = "' . $ville.'";');
                $listeville = DB::Select('SELECT DISTINCT(villeDepar) FROM livraisons
                WHERE ArriveOuNon = "oui" ');
                return view('gestionLivraison.listeCamionParVille',compact('listeville','listeCamion'));
            }
            public function camionTop3() {
                $listeCamion = DB::select('SELECT c.matricule , c.marque , c.photo , COUNT(*) AS nmbr FROM camions c
                INNER JOIN livraisons l ON l.matricule = c.matricule
                GROUP BY c.matricule , c.marque , c.photo
                ORDER BY nmbr DESC 
                LIMIT 3 ');
                return view('gestionLivraison.camionTop3',compact('listeCamion'));
        
            }
        
            public function modifier($id) {
                $camion = Camion::find($id);
                return view('gestionLivraison.modifierCamion',compact('camion'));
        
            } 
            public function mettreAjour(Request $request,$id){
                $camion = Camion::find($id);
                $camion->update($request->all());
                $listeCamion = Camion::all();
                return view('gestionLivraison.listeCamion',compact('listeCamion'));
            }
            public function supprimer($id) {
                $camion = Camion::find($id);
                $camion->delete();
                $listeCamion = Camion::all();
                return redirect()->route('listeCamion');
            }
        
        }
        
    

Livraison Controler


        <?php

        namespace App\Http\Controllers;
        
        use Illuminate\Http\Request;
        use App\Models\Livraison;
        use App\Models\Chauffeur;
        use App\Models\Camion;
        use Illuminate\Support\Facades\DB;
        
        
        
        class livraisonController extends Controller
        {
            public function ajouter() {
                $listeChauff = Chauffeur::all();
                $listeCamion = Camion::all();
                return view('gestionLivraison.ajouterLivraison',compact('listeChauff','listeCamion'));
            }
            public function validerAjouter(Request $request) {
                Livraison::create($request->all());
                return back()->with('msg','livraison bien ajoutée');
            }
            public function afficherListe() {
                $listeLivraison = Livraison::all();
                return view('gestionLivraison.listeLivraison',compact('listeLivraison'));
            }
            public function modifier($id) {
                $listeChauff = Chauffeur::all();
                $listeCamion = Camion::all();
                $livraison = Livraison::find($id);
                return view('gestionLivraison.modifierLivraison',compact('listeChauff','listeCamion','livraison'));
        
            } 
            public function mettreAjour(Request $request,$id){
                $livraison = Livraison::find($id);
                $livraison->update($request->all());
                $listeLivraison = Livraison::all();
                return view('gestionLivraison.listeLivraison',compact('listeLivraison'));
            }
            public function supprimer($id) {
                $livraison = Livraison::find($id);
                $livraison->delete();
                $listeLivraison = Livraison::all();
                return redirect()->route('listeLivraison');
            }
            public function listeParDate(Request $request) {
                $date = $request->post('date');
                $listeLivraison = Livraison::Where('date','=',$date)->get();
                return view('gestionLivraison.listeLivraison',compact('listeLivraison'));
            }
            public function nmbrVoyageParChauffeur() {
                $listeChauff = DB::select('SELECT COUNT(l.idL) as nombreVoyage , c.nom , c.prenom
                FROM chauffeurs c
                LEFT JOIN livraisons l ON l.idCh = c.idCh
                GROUP BY  c.nom , c.prenom');
                return view('gestionLivraison.nombreVoyageParChauffeur',compact('listeChauff'));
            }
        }
        
        
    

Vues

Layouts app.blade.php


        <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@yield('titre')</title>
    <style>
        nav {
            background-color: #a2a2dc;
            padding: 10px;
            margin-bottom: 20px;
        }

        nav a {
            color: #fff;
            text-decoration: none;
            margin-right: 10px;
            font-family: Arial, sans-serif;

        }

        nav a:hover {
            text-decoration: underline;
        }

        h1 {
            color: #333;
            font-family: Arial, sans-serif;
        }
    </style>
</head>
<body>
    <nav>
    <a href="/livraison/ajouter">+ Ajouter Livraison</a>
    <a href="/livraison/liste">Liste Livraison</a>
    <a href="/camion/listeParChauffeur">Camion Par chauffeur</a>
    <a href="/camion/listeParVille">Camion Par Ville</a>
    <a href="/camion/listeParVilleArrive">Camion Par Ville Arrive</a>
    <a href="/livraison/nombreVoyage">Nombre Voyafe Par Chauffeur</a>
    <a href="/camion/top3">Top 3 Camion utilisés</a>

    </nav>
    <h1>@yield('titre')</h1>
    @yield('content')
</body>
</html>

    

Ajouter Livraision


            Route::get('/livraison/ajouter',[livraisonController::class,'ajouter']);
            Route::post('/livraison/validerAjouter',[livraisonController::class,'validerAjouter'])->name('validerAjouterLivraison');
                        

                @extends('gestionLivraison.app')

                @section('titre')
                Ajouter Livraison
                @endsection
                
                @section('content')
                <form action="{{route('validerAjouterLivraison')}}" method="post">
                <label for="date">Date</label>
                @csrf
                    <input type="date" name="date" ><br><br>
                    <label for="villeDepar">Ville Dépar</label>
                    <input type="text" name="villeDepar" ><br><br>
                    <label for="villeArrivee">Ville Arrivée</label>
                    <input type="text" name="villeArivee" ><br><br>
                    <label for="idCh">Chauffeur</label>
                    <select name="idCh" >
                        <option value="">Choisisser un chauffeur</option>
                        @foreach($listeChauff as $ch)
                        <option value="{{$ch->idCh}}">{{$ch->nom}} {{$ch->prenom}}</option>
                        @endforeach
                    </select><br><br>
                    <label for="matricule">Camion</label>
                    <select name="matricule" >
                    <option value="">Choisisser un Camion</option>
                        @foreach($listeCamion as $c)
                        <option value="{{$c->matricule}}">{{$c->marque}} {{$c->matricule}}</option>
                        @endforeach
                    </select><br><br>
                    <label for="arriveOuNon">Arrivée</label>
                    <input type="radio" name="ArriveOuNon" value='oui' >Oui
                    <input type="radio" name="ArriveOuNon" value='non'>Non
                    <br><br>
                    <input type="submit" value="ajouter">
                    @if(session('msg'))
                    <p style='color:green;'>{{session('msg')}}</p>
                    @endif
                </form>
                @endsection            
            

Liste Livraision


                Route::get('/livraison/liste',[livraisonController::class,'afficherListe'])->name('listeLivraison');
                Route::post('/livraison/listeParDate',[livraisonController::class,'listeParDate'])->name('livraisonParDate');
                                                            

                    @extends('gestionLivraison.app')

                    @section('titre')
                    Liste Livraisons
                    @endsection
                    
                    @section('content')
                    <form action="{{route('livraisonParDate')}}" method="post"> @csrf
                        <input type="date" name='date'> <input type="submit" value="Chercher par date">
                    </form>
                    <table border="1" style="width: 100%; border-collapse: collapse;">
                        <tr style="background-color: #f2f2f2;">
                            <th style="padding: 8px; text-align: left;">Date</th>
                            <th style="padding: 8px; text-align: left;">Ville Depar</th>
                            <th style="padding: 8px; text-align: left;">Ville Arrivée</th>
                            <th style="padding: 8px; text-align: left;">Chauffeur</th>
                            <th style="padding: 8px; text-align: left;">Camion</th>
                            <th style="padding: 8px; text-align: left;">Arrivée</th>
                            <th style="padding: 8px; text-align: left;">Actions</th>
                        </tr>
                        @foreach($listeLivraison as $l)
                        <tr style="background-color: #fff;">
                        <td style="padding: 8px; text-align: left;">{{$l->date}}</td>
                        <td style="padding: 8px; text-align: left;">{{$l->villeDepar}}</td>
                        <td style="padding: 8px; text-align: left;">{{$l->villeArivee}}</td>
                        <td style="padding: 8px; text-align: left;">{{$l->chauffeur->nom}}</td>
                        <td style="padding: 8px; text-align: left;">{{$l->camion->matricule}}</td>
                        <td style="padding: 8px; text-align: left;">{{$l->ArriveOuNon}}</td>
                            <td style="padding: 8px; text-align: left;">
                                <a href="/livraison/modifier/{{$l->idL}}" style="margin-right: 10px; text-decoration: none; padding: 5px 10px; border-radius: 5px; background-color: green; color: white;">Modifier</a>
                                <a href="/livraison/supprimer/{{$l->idL}}" style="margin-right: 10px; text-decoration: none; padding: 5px 10px; border-radius: 5px; background-color: red; color: white;"<Supprimer</a<
                            </td<
                        </tr<
                        @endforeach
                    </table<
                    @endsection
            

Modifier Livraision


                Route::get('/livraison/modifier/{id}',[livraisonController::class,'modifier']);
                Route::post('/livraison/update/{id}',[livraisonController::class,'mettreAjour'])->name('mettreAjourLivraison');
                                            

                    @extends('gestionLivraison.app')

                    @section('titre')
                    Modifier Livraison
                    @endsection
                    
                    @section('content')
                    <form action="{{route('mettreAjourLivraison',$livraison->idL)}}" method="post">
                    @csrf
                        <label for="date">Date</label>
                        <input type="date" name="date" value='{{$livraison->date}}'><br><br>
                        <label for="villeDepar">Ville Dépar</label>
                        <input type="text" name="villeDepar" value='{{$livraison->villeDepar}}'><br><br>
                        <label for="villeArrivee">Ville Arrivée</label>
                        <input type="text" name="villeArivee" value='{{$livraison->villeArivee}}'><br><br>
                        <label for="idCh">Chauffeur</label>
                        <select name="idCh" >
                            <option value="">Choisisser un chauffeur</option>
                            @foreach($listeChauff as $ch)
                            <option value="{{$ch->idCh}}" @if($ch->idCh == $livraison->idCh) selected @endif>{{$ch->nom}} {{$ch->prenom}}</option>
                            @endforeach
                        </select><br><br>
                        <label for="matricule">Camion</label>
                        <select name="matricule" >
                        <option value="">Choisisser un Camion</option>
                            @foreach($listeCamion as $c)
                            <option value="{{$c->matricule}}" @if($c->matricule == $livraison->matricule) selected @endif>{{$c->marque}} {{$c->matricule}}</option>
                            @endforeach
                        </select><br><br>
                        <label for="arriveOuNon">Arrivée</label>
                        <input type="radio" name="ArriveOuNon" value='oui'  @if( $livraison->ArriveOuNon == 'oui') checked @endif>Oui
                        <input type="radio" name="ArriveOuNon" value='non'  @if( $livraison->ArriveOuNon == 'non') checked @endif>Non
                        <br><br>
                        <input type="submit" value="Modifier">
                        @if(session('msg'))
                        <p style='color:green;'>{{session('msg')}}</p>
                        @endif
                    </form>
                    @endsection            

Nombre Voyage Par Chauffeur


        Route::get('/livraison/nombreVoyage',[livraisonController::class,'nmbrVoyageParChauffeur'])->name('nombreVoyage');
    

            @extends('gestionLivraison.app')

            @section('titre')
            Nombre Voyage Par Chauffeur
            @endsection
            
            @section('content')
            <table border=1>
                <tr>
                    <th>Chauffeur</th>
                    <th>Nombre voyages</th>
                </tr>
                @foreach($listeChauff as $c)
                <tr>
                    <td>{{$c->nom}} {{$c->prenom}}</td>
                    <td>{{$c->nombreVoyage}}</td>
                </tr>
                @endforeach
            </table>
            @endsection
            

Ajouter Camion


        Route::get('/camion/ajouter',[camionController::class,'ajouter']);
        Route::post('/camion/validerAjouter',[camionController::class,'validerAjouter'])->name('validerAjouterCamion');
        

            @extends('gestionLivraison.app')

            @section('titre')
            Ajouter Camion
            @endsection
            
            @section('content')
            <form action="{{route('validerAjouterCamion')}}" method="post" enctype="multipart/form-data">
            @csrf
            <label for="matricule">Matricule</label>
            <input type="number" name="matricule" ><br><br>
            <label for="marque">Marque</label>
            <input type="text" name="marque" ><br><br>
            <label for="photo">Photo</label>
            <input type="file" name="photo" ><br><br>
            @if(session('imgError'))
            <p style='color:red;'>{{session('imgError')}}</p>
            @endif
            <input type="submit" value="Ajouter">
            @if(session('msg'))
            <p style='color:green;'>{{session('msg')}}</p>
            @endif
            
            </form>
            @endsection    
        

Liste Camion par Ville


            Route::get('/camion/listeParVilleArrive',[camionController::class,'camionListeParVilleArrive'])->name('listeCamionParvilleArrive');
        

    @extends('gestionLivraison.app')

    @section('titre')
    Liste Camion par Ville
    @endsection
    
    @section('content')
    <form action="{{route('aficherListeCamionParvilleArrive')}}" method="post"> 
        @csrf
    <select name="ville" >
                <option value="">Selectionner une Ville</option>
                @foreach($listeville as $v)
                <option value="{{$v->villeDepar}}">{{$v->villeDepar}}</option>
                @endforeach
            </select>
            <input type="submit" value="Chercher Par Specialité">
    </form>
    
    <table border="1" style="width: 100%; border-collapse: collapse;">
        <tr style="background-color: #f2f2f2;">
            <th style="padding: 8px; text-align: left;">Matricule</th>
            <th style="padding: 8px; text-align: left;">Marque</th>
        </tr>
        @foreach($listeCamion as $c)
        <tr>
        <td>{{$c->matricule}}</td>
        <td>{{$c->marque}}</td>
        </tr>
        @endforeach
    </table>
    @endsection

Liste Camion par chauffeur


    Route::get('/camion/listeParChauffeur',[camionController::class,'camionListeParChauffeur'])->name('listeCamionParChauffeur');

        @extends('gestionLivraison.app')

        @section('titre')
        Liste Camion par Chauffeur
        @endsection
        
        @section('content')
        <table border="1" style="width: 100%; border-collapse: collapse;">
            <tr style="background-color: #f2f2f2;">
                <th style="padding: 8px; text-align: left;">Chauffeur</th>
                <th style="padding: 8px; text-align: left;">Camions</th>
            </tr>
            @foreach($listeChauffeur as $ch)
            <tr>
                <td>{{$ch->nom}} {{$ch->prenom}}</td>
                <td>
                    <ul>
                        @foreach($ch->livraisons as $l)
                            <li>{{$l->matricule}} {{$l->camion->marque}} 
                                <img src="{{$l->camion->photo}}" style="width: 100px;" alt="" srcset="">
                            </li>
                        @endforeach
                    </ul>
                </td>
            </tr>
            @endforeach
        </table>
        @endsection    

la liste des camions les plus utilisés


        Route::get('/camion/top3',[camionController::class,'camionTop3'])->name('camionTop3');
    

            @extends('gestionLivraison.app')

            @section('titre')
            Top 3 Camions utilisés
            @endsection
            
            @section('content')
            <table border="1" style="width: 100%; border-collapse: collapse;">
                <tr style="background-color: #f2f2f2;">
                    <th style="padding: 8px; text-align: left;">Matricule</th>
                    <th style="padding: 8px; text-align: left;">Marque</th>
                    <th style="padding: 8px; text-align: left;">Nombre Utilisation</th>
                    <th style="padding: 8px; text-align: left;">Photo</th>
                </tr>
                @foreach($listeCamion as $c)
                <tr>
                <td>{{$c->matricule}}</td>
                <td>{{$c->marque}}</td>
                <td>{{$c->nmbr}}</td>
                <td><img src="/images/{{$c->photo}}" style="width: 100px;" alt="" srcset=""></td>
                </tr>
                @endforeach
            </table>
            
            @endsection