You are on page 1of 6

Correction Régional Sous Masa

1)
- php artisan make:model Categorie
- php artisan make:model Livre
2)
protected $fillable = [
"titre",
"pages",
"description",
"image",
"categorie_id"
];

3)
public function livres(){
return $this->hasMany(Livre::class);
}

4)
php artisan make:migration create_livres_table
public function up(): void
{
Schema::create('livres', function (Blueprint $table) {
$table->id();
$table->string("titre");
$table->decimal("pages");
$table->text("description");
$table->string("image");
$table->foreignId("categorie_id")->constrained("categories");
$table->timestamps();
});
}

5)
php artisan make:controller LivreController -r
Correction Régional Sous Masa
6)
use App\Models\livre ;
public function index()
{
$livres = Livre::all();
return view("index");
}

7)
public function create()
{
return view("create");
}

8)
public function store(Request $request)
{
Livre::create([
"titre"=>$request->titre,
"pages"=>$request->pages,
"description"=>$request->description,
"image"=>$request->image,
"categorie_id"=>$request->categorie_id
]);
return redirect()->route("livre.index");
}

9)
public function edit(Livre $livre)
{
return view("edit",copmact('livre'));
}
Correction Régional Sous Masa
10)
public function update(Request $request, Livre $livre)
{
$livre->update([
"titre"=>$request->titre,
"pages"=>$request->pages,
"description"=>$request->description,
"image"=>$request->image,
"categorie_id"=>$request->categorie_id
]);

return redirect()->route("livre.index");
}

11)
public function destroy(string $id)
{
$livre = Livre::find($id);
$livre->delete();
return redirect()->route("livre.index");
}

12)
Route::resource('/livre',LivreController::class);

13)
a)
@extends('layout.app')

b)
@section('content')
<h1>La liste des Livres </h1>
<table>
<tr>
<th>Id</th>
<th>Titre</th>
<th>Pages</th>
Correction Régional Sous Masa
<th>Description</th>
<th>images</th>
<th>Categorie</th>
<th>actions</th>
</tr>
@foreach ($livres as $livre)
<tr>
<td>{{$livre->id}}</td>
<td>{{$livre->titre}}</td>
<td>{{$livre->pages}}</td>
<td>{{$livre->description}}</td>
<td><img src="{{asset($livre->image)}}" alt=""></td>
<td>{{$livre->categorie->nom}}</td>
<td>

</td>
</tr>
@endforeach
</table>
@endsection

14)
<a href="{{route('livre.create')}}">Ajouter Livre</a>

<td>
<form action="{{route('livre.destroy',$livre->id)}}"
method="post">
@csrf
@method("DELETE")
<a href="{{route('livre.edit',$livre->id)}}">Modifier</a>
<button type="submit" >Supprimer</button>
</form>
</td>

15)
$request->validate([
"titre"=>"required|max:255",
"pages"=>"required|integer|min:1",
"description"=>"required",
"categorie_id"=>"required|in:1,2,3"
]);
Correction Régional Sous Masa
16)
php artisan make:middleware AuthMiddleware
use Illuminate\Support\Facades\Auth;

public function handle(Request $request, Closure $next): Response


{
if(Auth::check()){
return $next($request);
}

return back();

17)
Route::resource('/livre',LivreController::class)-
>middleware(AuthMiddleware::class);

18)
a)
php artisan make:migration add_image_to_livres
b)
public function up(): void
{
Schema::table('livres', function (Blueprint $table) {
$table->string("image")->nullable();
});
}

public function down(): void


{
Schema::table('livres', function (Blueprint $table) {

$table->dropColumn("image");
});
}
Correction Régional Sous Masa
c)
$image = null ;
if(isset($request->image)){
$image = $request->image ;
$request->image->move("images/",$image);
}

Livre::create([
"image"=>$image,
]);

return redirect()->route("livre.index");

d)
<td><img src="{{asset('images/'.$livre->image)}}" alt=""></td>

You might also like