Vous êtes sur la page 1sur 8

Test Blanc

1. Ecrire le code du fichier migration de la table Stagiaire.


public function up()
  { 
        Schema::create('stagiaires', function (Blueprint $table) {
            $table->id('NumStg');
            $table->string('nom',30);
            $table->string('prénom',50);
            $table->date('dateInsc');
$table->enum('niveau',['bac','niveau bac']);
$table->decimal('note',4,2);
            $table->foreignId('NumEtab')->references('NumEtab')
            ->on('Etablissemants')->onUpdate('cascade')->onDelete('cascade');
            $table->timestamps();
        });

2. Ecrire le code qui permet de remplir la table Stagiaire ( Seeder).


public function run()
  {
        DB::table("stagiaires")->insert([

      [
'nom'=>"John Doe",
            'prénom' =>"Jane",
            'dateInsc'=>"2023-06-10",
            'niveau'=>"bac",
'note'=>12,
'NumEtab'=>1
            ],

      [
'nom'=>"Alice Smith",
            'prénom' =>"Bob",
            'dateInsc'=>"2023-06-10",
            'niveau'=>"niveau bac",
'note'=>9,
'NumEtab'=>1
            ],

      [
'nom'=>"Emma Jhonson",
            'prénom' =>"Michael",
            'dateInsc'=>"2023-06-10",
            'niveau'=> "bac",
'note'=>11,
'NumEtab'=>1
            ],
        ]);
  }

3. Ecrire le code des deux modèles associés à la table stagiaire et etablissement avec les relations entre eux.
 Etablissement :

use App\Models\Stagiaire;

class Livre extends Model


{

    public function stagiaires(){


 Stagiaire :

use App\Models\Etablissement;

class Auteur extends Model


{
    protected $fillable = ['nom','prénom','dateInsc','niveau','note','NumEtab'];

    public function etablissement(){


       return $this->belongsTo(Etablissement::class,'NumEtab');
  }

4. Créez un contrôleur "StagiaireController" en utilisant la commande php artisan make:controller


StagiaireController et y ajouter les méthodes suivantes :
 Rechercher : qui redirige vers la vue Rechercher.blade.php qui affiche la liste des stagiaires d’un etablissement
donné.
(Utilisez les fonctionnalités de pagination pour afficher 10 stagiaire par page)

use App\Models\Stagiaire;
 public function Rechercher($NumEtab)
  {
    
        $stagiaires = Stagiaire::where('NumEtab',$NumEtab)->paginate(10);
        return view('Rechercher', compact('stagiaires'));
 Editer : qui redirige vers la vue Editer.blade.php qui permet d’éditer les informations d’un stagiaire donné.

use App\Models\Stagiaire;

 public function Editer(Stagiaire $stagiaire)

  { 
        return view('Editer',compact('stagiaire'));
  }


Modifier : qui modifie les informations d’un stagiaire sachant que :
 La date d’inscription doit étre inférieure ou égale au 30 juin de l’année en cours.
 La note du test doit étre un décimal positif avec 2 nombre après la virgule

use App\Models\Stagiaire;

public function Modifier(Request $request, Stagiaire $stagiaire)


  { 
        $request->validate([
          'dateInsc'=> ['required','date','befor_or_equal:30-7-Y],
          'note' => ['nullable','decimal:2']
        ]);

       $stagiaire->update($request->all());
       return back()->with('success', 'Le stagiaire a bien été modifier');
  }
Route::get('/stagiaires/rechercher/{NumEtab}',[StagiaireController::class,'Rechercher'])
->name('stagiaires.recherche');

Route::get('/stagiaires/editer/{stagiaire}',[StagiaireController::class,'Editer'])
->name('stagiaires.editer');

Route::put('/stagiaires/modifier/{stagiaire}', [StagiaireController::class,'Modifier'])
->name('stagiaires.modifier');

5. Ecrire les routes dans le fichier web.php .

6. Ecrire le code des vues Rechercher.blade.php(afficher aussi le nom de l’établissement avec un lien pour edit)
et Editer.blade.php. Utilisez les fonctionnalités de pagination de Laravel pour afficher 10 livres par page.

 Rechercher.blade.ph
 <
<
@extends('layouts.app')
@section('title', 'Liste des stagiaires')
 <
@section('content')
  
  
<h2>Rechercher des Stagiaires :</h2>
@if ($message = Session::get('success'))
  
<div>
  
    <p>{{ $message }}</p>
  
</div>
<
@endif
@
<div>
    <h2>Liste des stagiaires</h2>
    <form method="get" action="{{route('stagiaires.recherche',request('NumEtab')) }}">
        <div>
            <input type="text" name="NumEtab" value="{{ request('NumEtab') }}"
placeholder="Chercher NumEtab">
            <button type="submit">
                rechercher
            </button>
 Editer.blade.php

6. Ecrire le code du contrôleur d’une API qui contient les méthodes suivantes :
 ‘rechercher’ qui retourne tous les stagiaires d’un niveau donné (niveau).

use App\Models\Stagiaire;
 public function Rechercher($niveau)
  {
        $stagiaires = Stagiaire::where('niveau', $niveau)->paginate(10);
        return response()->json($stagiaires);

  }
 ‘Supprimer’ qui supprimer un stagiaire donné.

use App\Models\Stagiaire;
public function Supprimer($NumStg)
  {
    
Route::delete('/api/stagiaires/supprimer',[StagiaireApiController::class,'Supprimer']);
Stagiaire::find($NumStg)->delete();
        return response()->json(['message' => 'stagiaire supprimer avec succès']);
Route::get('/api/stagiaires/rechercher/{niveau}',[StagiaireApiController::class,
  } 'Rechercher']);

 Web.php :

Vous aimerez peut-être aussi