Laravel:La structrue du projet
1:Créer le Controller:ProduitController
├── 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 Type | Requêtes http | Action(fonctions) | Route Name |
---|---|---|---|
GET | /produits | index | produits.index |
GET | /produits/create | create | produits.create |
POST | /produits | store | produits.store |
GET | /produits/{produit} | show | produits.show |
GET | /produits/{produit}/edit | edit | produits.edit |
PUT/PATCH | /produits/{produit} | update | produits.update |
DELETE | /produits/{produit} | destroy | produits.destroy |
├── routes
│ ├── web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ProduitController;
Route::resource('produits', ProduitController::class);