Académique Documents
Professionnel Documents
Culture Documents
Exercice de Révision Backend Avec Correction
Exercice de Révision Backend Avec Correction
Exercice 1: (6 pts)
1- Expliquer le code suivant et détailler le rôle de la transaction : (2pts)
use Illuminate\Support\Facades\DB;
DB::insert(insert into Archive select from etudiant where note<10');
La 1ère ligne ,on importe la facade DB qui sera utiliser pour faire appel aux fonctions de
manipulation d’une base de données
La 2ème ligne : la requete permet d’insérer les données des étudiants avec note inférieure à 10 dans la
table Archive .
Le rôle d’une transaction c’est lors d’un problème dans le serveur les requetes seront annulé en
ensemble .
c- $U=DB::table('etudiant')->inRandomOrder()->first();
$U contient les information d’un étudiant aléatoire.
3.Quelle commande est utilisée pour créer un modèle et un contrôleur en même temps ?
Php artisan make :model NomModel -c
Exercice 2: (14 pts)
Dans notre base de données, on a la table « produits » déjà créée avec les colonnes
idp, libelle, dateProduction, QuiteStock
1- Créez une migration pour ajouter une colonne "prix" à la table "produits" : donner la commande
de création (1pt) + la méthode up()
(1pt) + la commande pour éxecuter la migration (1pt).
La commande de création :
Php artisan make :migration add_prix_to_produits_table
La méthode up() :
Public function up(){
Schema ::table(‘produits’,function (BluePrint $table){
$table->double(‘prix’) ; }
) ;
}
La commande pour exécuter la migration
Php artisan migrate --db=\database\migration\01211220122_add_prix_to_produits_table.php
2- Créez une Factory pour générer des données pour la table "produits".Les libelles doivent être
générés avec la méthode productName() de Faker .
Donner la commande de création de la factorie + le code de la méthode definition().(2pts)
création d'un factory :
php artisan make:factory ProduitFactory
méthode défininition
return [
'idp' =>$this->fake()->RandomNumber->unique(),
'libelle' =>$this->fake()->productName(),
'dateProduction' =>$this->fake()->date(),
'QuantStock' =>$this->fake()->NumberBetween(0,100)
];
}
4- Sachant qu'un produit peut être commander plusieurs fois et une commande peut contenir
plusieurs produits à la fois. Donner la/les méthodes à ajouter dans les modèles Produit et
Commande (on suppose que les modèles sont créés) (2pts)
La relation c’est Many to Many
La function à ajouter dans le modèle Produit
Function commandes(){
Return $this->belongsToMany(\App\Models\
Commande::class,’facturation’,’produitid’,’commandeid’);
}
5. Donner tout ce qui est nécessaire pour pouvoir supprimer un produit via une page comme suit :
Route::resource('produit',\App\Http\Controllers\ProduitController::class);
Création des views :
\ressources\views\produit\formsupp.blade.php
@section(‘content’)
<div class=’container ‘>
<form method= ‘post’ action= ‘{{ route(‘produit.destroy’)}}’>
@method(‘delete’)
@csrf
Id du produit à supprimer
<input name=’idp’ type= ‘text’ / >
</form>
</div>
@endsection
\resources\views\produit\index.blade.php
@extends(‘app.blade.php’) // dans la vue mère @yield(‘section’)
@section(‘content’)
@if(session('success'))
<div class="alert alert-success">
{{ session('success') }} </div>
@endif
<table>
<tr>
<th> id produit </th>
<th> libelle produit </th>
<th> quantite produit </th>
<th> date production produit </th>
</tr>
@foreach($produits as $produit)
<tr>
<td> {{$product->idp }} </td>
<td> {{$product->libelle }} </td>
<td> {{$product->dateproduction }} </td>
<td> {{$product->quantite }} </td>
</tr>
@endsection