TP Laravel
TP Laravel
TP Laravel
1 DB_CONNECTION=mysql
2 DB_HOST=127.0.0.1
3 DB_PORT=3306
4 DB_DATABASE=manageSchool
5 DB_USERNAME=root
6 DB_PASSWORD=
1. app/Models/Students.php
2. database/migrations/create_students_table.php
Ajouter ensuite les attributs nécessaires à la gestion des étudiants au modèle
Students:
database/migrations/create_students_table.php
1 public function up()
2 {
3 Schema::create('students', function (Blueprint $table) {
4 $table->id();
5 $table->string('name');
6 $table->string('email');
7 $table->integer('phone');
8 $table->string('section');
9 $table->string('image');
10 $table->timestamps();
TP Laravel: Système de gestion d'un établissement
scolaire avec Laravel 8 06/03/2024
11 });
12 }
3 Création du contrôleur
Afin que notre application soit un système de CRUD valide, il faut qu'elle soit dotée
d'un contrôleur. Laravel 8 crée le contrôleur automatiquement à l'aide de la
commande make:controller et si on veut créer les méthodes au sein du contrôleur
on ajoute à la fin de la commande: --resource:
1 <?php
2 namespace App\Http\Controllers;
3 use Illuminate\Http\Request;
4
TP Laravel: Système de gestion d'un établissement
scolaire avec Laravel 8 06/03/2024
32 }
33
34 /**
35 * Display the specified resource.
36 *
37 * @param int $id
38 * @return \Illuminate\Http\Response
39 */
40 public function show($id) {
41 //
42 }
43
44 /**
45 * Show the form for editing the specified resource.
46 *
47 * @param int $id
48 * @return \Illuminate\Http\Response
49 */
50 public function edit($id) {
51 //
52 }
53
54 /**
55 * Update the specified resource in storage.
56 *
57 * @param \Illuminate\Http\Request $request
58 * @param int $id
TP Laravel: Système de gestion d'un établissement
scolaire avec Laravel 8 06/03/2024
59 * @return \Illuminate\Http\Response
60 */
61 public function update(Request $request, $id) {
62 //
63 }
64
65 /**
66 * Remove the specified resource from storage.
67 *
68 * @param int $id
69 * @return \Illuminate\Http\Response
70 */
71 public function destroy($id) {
72 //
73 }
74 }
1 @yield('content')
6. créer ensuite le fichier: index.blade.php au sein du dossier resources/view/ et y
ajouter les balises d'héritage:
1 @extends('layout')
2 @section('content')
3 <!-- Content here ! -->
4 @endsection
7. Faite la même chose pour les fichiers , create.blade.php , edit..blade.php,
update.blade.php et delete.blade.php (vous devez créer ces fichiers).
Pour créer une route, rien de plus simple, il suffit d'utiliser l'objet Root et d'indiquer
le suffixe souhaité pour l'url de l'application et le controller de l'application au
niveau du fichier 'Routes/web.php':
1 use App\Http\Controllers\StudentController;
2 Route::resource('students' , StudentController::class);
1 npm install
1 npm run dev
Remarque
ces deux commandes 'npm install' et 'npm run dev', exige que Node.JS soit installé
dans votre machine! Si ce n'est pas le cas veuillez le télécharger et l'installer via
l'adresse: https://nodejs.org/fr/download/
Remarque
Afin d'éviter les vulnérabilité d'attaque sous forme d'un envoie de données en
masse, on doit ajouter le tableau $fillable au modèle:
app/Models/Students.php
1 // app/Http/Controllers/StudentsController.php
2
3 public function index()
4 {
5 // recuperation des donnees sous forme d'un tableau
6 $students = Students::all();
7
8 // afficher les donnees sur le template index.blade.php
9 return view('index', compact('students'));
10 }
</form>@endsection
1 @extends('layout')
2 @section('content')
3 <div class="table-wrapper">
4 <table class="fl-table">
5 <thead style="height: 5px;">
6 <tr>
7 <th> ID </th>
8 <th>Name</th>
9 <th>Email</th>
10 <th>Phone</th>
11 <th>Section</th>
12 <th>Image</th>
13 <th>Show </th>
14 <th>Update </th>
15 <th>Delete</th>
16 </tr>
17 <tr>
18 <td colspan="7"></td>
19 </tr>
20 </thead>
21 <tbody>
22 @foreach($students as $student)
TP Laravel: Système de gestion d'un établissement
scolaire avec Laravel 8 06/03/2024
23 <tr>
24 <td>{{$student->id}}</td>
25 <td>{{$student->name}}</td>
26 <td>{{$student->email}}</td>
27 <td>{{$student->phone}}</td>
28 <td style="color:brown; font-weight: bold;">{{$student->section}}</td>
29 <td><img src="/image/{{ $student->image }}" width="64"
30 height="64"></td>
31 <td style="vertical-align:middle; ">
32 <form method="POST" align="left">
33 <a ; class="btn btn-info" href="{{ route('students.show' , $student-
34 >id) }}">Show</a>
35 </form>
36 </td>
37
38 <td style="vertical-align:middle; ">
39 <form method="POST" align="left">
40 <a class="btn btn-primary" href="{{ route('students.edit' , $student-
41 >id) }}">Edit</a>
42 </form>
43 </td>
44
45 <td style="vertical-align:middle; ">
46 <form method="POST" align="left">
47 <a class="btn btn-danger" href="{{ url('students.destroy' ,$student-
48 >id) }}">Delete</a>
49 </form>
TP Laravel: Système de gestion d'un établissement
scolaire avec Laravel 8 06/03/2024
50 </td>
51 </tr>
52 @endforeach
53 </tbody>
54
55 </table>
56 <div style="width:650px;">
57 {!! $students->links() !!}
</div>
</div>
@endsection