fes 2024
fes 2024
Question 1 : a
Question 2 : a
Question 3 : a, b
Question 4 : a
Question 5 : d
Partie pratique
La procédure est :
* Lancer `npm run dev` dans le développement ou `npm run build` pour la production
$table->id();
$table->string('last_name');
$table->string('first_mid_name');
$table->dateTime(enrollment_date);
});
$table->id();
$table->string(‘title’);
$table->string(‘credits’);
});
Dans laravel:
$table->id();
$table->foreignId('student_id')->constrained();
$table->foreignId('course_id')->constrained();
$table->double('grade')->nullable();
});
return [
}}
return [
];
}}
Student::factory(20)->create();
Course::factory(20)->create();
Student.php :
return $this->belongsToMany(Course::class)->withPivot(‘grade’);
Course.php :
return $this->belongsToMany(Student::class)->withPivot(‘grade’);
Dans routes/web.php :
Route::resource('students', StudentController::class);
$students = Student::paginate(3);
{
$student = Student::find($id);
return view('students.create');
Student::create($request->all());
return redirect()->route('students.index');
$student = Student::find($id);
$student = Student::find($id);
$student->update($request->all());
return redirect()->route('students.index');
$student = Student::find($id);
$student->delete();
return redirect()->route('students.index');
9. Fichiers Blade
students.index :
@extends('layouts.app')
@section('content')
<div>
<h2>Students</h2>
<button type=”submit”>Search</button>
<table>
<thead>
<tr>
<th> </th>
<th>Last Name</th>
<th>First Name</th>
<th>Enrollment Date</th>
</tr>
</thead>
<tbody>
@foreach($students as $student)
<tr>
<td>
@method('DELETE')
<button type="submit">Delete</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
{{$students->links()}}
</div>
@endsection
students.show :
@extends('layouts.app')
@section('content')
<div>
<h1> Details</h1>
<table>
<thead>
<tr>
<th>Course Title</th>
<th>Grade</th>
</tr>
@foreach($student->courses as $course)
<tr>
</tr>
@endforeach
</table>
@endsection
students.create :
@extends('layouts.app')
@section('content')
<h1>Create</h1>
@csrf
<label>Last Name</label>
<label>First Name</label>
<label>Enrollment Date</label>
<button type="submit">Create</button>
</form>
@endsection
students.edit :
@extends('layouts.app')
@section('content')
<h1>Edit</h1>
<form method="POST" action="{{ route('students.update', $student->id) }}">
@csrf
@method(‘put’)
<label>Last Name</label>
<label>First Name</label>
<label>Enrollment Date</label>
<button type="submit">Save</button>
</form>
@endsection
Dans StoreStudentRequest.php :
return [
];
}
12.vue d’inscription
@extends('layouts.app')
@section('content')
<h1>Register</h1>
@csrf
<label>Nom</label>
<label>Email</label>
<label>Password</label>
<button type="submit">s’inscrire</button>
</form>
@endsection
@extends('layouts.app')
@section('content')
<h1>Login</h1>
@csrf
<label>Email</label>
<label>Password</label>
</form>
@endsection
use RefreshDatabase;
$response = $this->actingAs($user)->post(route('students.store'), [
]);
$response->assertRedirect(route('students.index'));
$user = User::factory()->create();
$response->assertStatus(200);
$response->assertSee('Doe');
$student = Student::factory()->create();
$response = $this->actingAs($user)->put(route('students.update', $student->id), [
]);
$response->assertRedirect(route('students.index'));
$student = Student::factory()->create();
$response->assertRedirect(route('students.index'));
15. Middlewares :
class RoleMiddleware
abort(403, 'Unauthorized');
}
return $next($request);
protected $routeMiddleware = [
];
Route::middleware(['auth'])->group(function () {
Route::middleware(['role:admin'])->group(function () {
});
});
return view('components.header');
Header.blade.php
<header>
<nav>
</nav>
</header>
protected $user;
$this->user = $user;
Mail::to('[email protected]')->send(new \App\Mail\UserRegistered($this->user));
public $user;
$this->user = $user;
->view('emails.user_registered');
}