Laravel
Models Migration Relation
Introduction,istallation Strucutre,model,migration Migration,Models,Relation
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 CRUD: Etudiant CRUD: Car CRUD,Recherche: Book
Validation
Exemple :Projets
Api:Laravel +React
Middleware

Seeders & Factories

Authenfication
Layouts





Laravel:La structrue du projet

1:Créer le Controller:ProduitController

php artisan make:controller ProduitController --resource
├── app
    ├── Http
        ├── Controllers
	│     ├── ProduitController.php

La structure par défaut du controller crée:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ProduitController extends Controller
{
   
    //afficher les produits :mapé avec la route:GET: produits/
    public function index()
    {
        //appeler ici la fonction all() du model
        //all() ,latest()==>select * from produits
    }

   //afficher le formulaire pour ajouter un produit:
    //mappée avec la route :GET : /produits/create
    public function create()
    {
        //...
    }

   //permert de récuppérer les données du formulaire de create
   //puis insérer un nouveau produits dans la base de données
   //mappée avec la route POST:/produits/store
    public function store(Request $request)
    {
        //le code à écrire par la suite
    }

    //afficher un produit par son id
    //mappée avec la route GET: produits/id
    public function show(string $id)
    {
        //
    }

    //permet d'afficher le formulaire de modification
    //mappée avec la route GET: produits/id/edit
    public function edit(string $id)
    {
        //
    }

    //permet de valider les modification du formulaire affiché par edit
    //mappé avec la route:PUT produits/update
    public function update(Request $request, string $id)
    {
        //
    }

    //permet de supprimer un produit par son id
    //mappé avec la route DELETE :/produit/id
    public function destroy(string $id)
    {
        //
    }
}

Le routage

les fonctions index(),create()...du controller ProduitController doivent être mappées avec leur routes par défaut:
Afin de mapper (liaier) les actions(fonctions) qui se trouve dans le controller ProduitController on doit ajouter les routes de mapping suivantes:
Request TypeRequêtes httpAction(fonctions)Route Name
GET/produitsindexproduits.index
GET/produits/createcreateproduits.create
POST/produitsstoreproduits.store
GET/produits/{produit}showproduits.show
GET/produits/{produit}/editeditproduits.edit
PUT/PATCH/produits/{produit}updateproduits.update
DELETE/produits/{produit}destroyproduits.destroy

├── routes
│    ├── web.php
<?php

use Illuminate\Support\Facades\Route;

use App\Http\Controllers\ProduitController;
Route::resource('produits', ProduitController::class);