TP Laravel
TP Laravel
1- Créer la migration
- Table filieres
Schema::create('filieres', function (Blueprint $table) {
$table->string('code')->primary();
$table->string('libelle');
$table->timestamps();
});
- Tables stagiaires
- Stagiaire
use App\Models\Filiere;
use Illuminate\Http\Request;
$filiere = Filiere::create($validatedData);
return redirect()->route('filieres.index')->with('success',
'Filiere créée avec succès.');
}
// $filiere = Filiere::find($id);
$filiere = Filiere::where('code', $code)->first();
if (!$filiere) {
abort(404);
}
$filiere->update($donne);
return redirect()->route('filieres.index')->with('success',
'Filiere modifiée avec succès.');
}
} else{
$filiere->delete();
return redirect()->route('filieres.index')->with('success',
'Filiere supprimée avec succès.');
}
}
}
-
- StagiaireController
use App\Http\Controllers\FiliereController;
use App\Http\Controllers\StagiaireController;
Route::resource('filieres', FiliereController::class);
Route::resource('stagiaires', StagiaireController::class);
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ config('app.name') }}</title>
<meta name="csrf-token" content="{{ csrf_token() }}">
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
<link
href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.mi
n.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65Vohhp
uuCOmLASjC" crossorigin="anonymous">
<script src="{{ asset('js/bootstrap.bundle.min.js') }}"></script>
</head>
<body>
<header class="d-flex justify-content-between align-items-center py-
3 bg-white border-bottom">
<a href="{{ url('/') }}" class="container d-flex align-items-
center text-dark text-decoration-none">
<svg xmlns="http://www.w3.org/2000/svg" width="24"
height="24" fill="none" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2" class="mx-2" viewBox="0 0 24
24"><path d="M12 2L2 7l10 5 10-5z"></path><path d="M22 12c-2.21 0-4
1.79-4 4v5a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-5c0-2.21-1.79-4-4-
4z"></path></svg>
<span class="fs-4">{{ config('app.name') }}</span>
</a>
<nav class="d-flex">
<ul class="nav nav-pills">
<li class="nav-item">
<a href="{{ route('filieres.index') }}" class="nav-
link @if(request()->routeIs('filieres.*')) active @endif">Filières</a>
</li>
<li class="nav-item">
<a href="{{ route('stagiaires.index') }}"
class="nav-link @if(request()->routeIs('stagiaires.*')) active
@endif">Stagiaires</a>
</li>
</ul>
@auth
<a href="{{ route('logout') }}" class="btn btn-sm btn-
outline-primary ms-3">Déconnexion</a>
@endauth
</nav>
</header>
- filieres/index.blade.php
@extends('layouts.app')
@section('content')
<div class="container">
<h1>Liste des filières</h1>
@if (session('success'))
<div class="alert alert-success" role="alert">
{{ session('success') }}
</div>
@endif
@extends('layouts.app')
@section('content')
<div class="container">
<h1>Créer une filière</h1>
@if ($errors->any())
<div class="alert alert-danger">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</div>
@endif
- filieres/edit.blade.php
@extends('layouts.app')
@section('content')
<div class="container">
<h1>Modifier la Filière</h1>
@if ($errors->any())
<div class="alert alert-danger" role="alert">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if ($filiere)
<form method="POST" action="{{ route('filieres.update', $filiere-
>code) }}">
@csrf
@method('PUT') <div class="form-group">
<label for="code">Code:</label>
<input type="text" name="code" id="code" class="form-control"
value="{{ old('code', $filiere->code) }}">
</div>
<div class="form-group">
<label for="libelle">Libellé:</label>
<input type="text" name="libelle" id="libelle" class="form-
control" value="{{ old('libelle', $filiere->libelle) }}">
</div>
<button type="submit" class="btn btn-primary">Modifier</button>
</form>
@else
<p>Filière non trouvée!</p>
@endif
- filieres/show.blade.php
@extends('layouts.app')
@section('content')
<div class="container">
<h1>Détails de la Filière</h1>
@if ($filiere)
<p><b>Code:</b> {{ $filiere->code }}</p>
<p><b>Libellé:</b> {{ $filiere->libelle }}</p>
@else
<p>Filière non trouvée!</p>
@endif