From d900470e3881752198e97172b32f924ea803d803 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20JACOB?= <chloe.jacob4@etu.unistra.fr> Date: Sun, 14 May 2023 19:07:53 +0200 Subject: [PATCH] quelques modifications --- .../Controllers/Admin/PieceController.php | 98 +++++++++++++++++++ .../Controllers/NationalityController.php | 2 +- app/Http/Controllers/PieceController.php | 21 +--- app/Models/Nationality.php | 6 ++ .../components/nationality/liste.blade.php | 2 +- .../views/components/piece/liste.blade.php | 9 +- resources/views/nationality/show.blade.php | 34 +++++++ routes/web.php | 13 +++ 8 files changed, 163 insertions(+), 22 deletions(-) create mode 100644 app/Http/Controllers/Admin/PieceController.php create mode 100644 resources/views/nationality/show.blade.php diff --git a/app/Http/Controllers/Admin/PieceController.php b/app/Http/Controllers/Admin/PieceController.php new file mode 100644 index 0000000..5db0280 --- /dev/null +++ b/app/Http/Controllers/Admin/PieceController.php @@ -0,0 +1,98 @@ +<?php + +namespace App\Http\Controllers\Admin; + +use App\Http\Controllers\Controller; +use App\Http\Requests\PieceRequest; +use App\Models\Piece; +use Illuminate\Http\Request; + +class PieceController extends Controller +{ + /** + * Display a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + // + } + + /** + * Show the form for creating a new resource. + * + * @return \Illuminate\Http\Response + */ + public function create() + { + return view('piece.create'); + } + + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function store(PieceRequest $request) + { + $data = $request->validated(); + $piece = new Piece(); + $piece->fill($data); + $piece->nationality()->associate($data['nationality']); + $piece->user()->associate($data['user']); + $piece->save(); + return redirect()->route('piece.show', $piece); + } + + /** + * Display the specified resource. + * + * @param \App\Models\Piece $piece + * @return \Illuminate\Http\Response + */ + public function show(Piece $piece) + { + // + } + + /** + * Show the form for editing the specified resource. + * + * @param \App\Models\Piece $piece + * @return \Illuminate\Http\Response + */ + public function edit(Piece $piece) + { + return view('piece.edit', ['piece' => $piece]); + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param \App\Models\Piece $piece + * @return \Illuminate\Http\Response + */ + public function update(PieceRequest $request, Piece $piece) + { + $data = $request->validated(); + $piece->fill($data); + $piece->nationality()->associate($data['nationality']); + $piece->save(); + return redirect()->route('piece.show', ['piece' => $piece]); + } + + /** + * Remove the specified resource from storage. + * + * @param \App\Models\Piece $piece + * @return \Illuminate\Http\Response + */ + public function destroy(Piece $piece) + { + $piece->delete(); + return redirect()->route('piece.index'); + } +} diff --git a/app/Http/Controllers/NationalityController.php b/app/Http/Controllers/NationalityController.php index 4bb9818..dd34c2e 100644 --- a/app/Http/Controllers/NationalityController.php +++ b/app/Http/Controllers/NationalityController.php @@ -46,7 +46,7 @@ public function store(Request $request) */ public function show(Nationality $nationality) { - // + return view('nationality.show', ['nationality' => $nationality]); } /** diff --git a/app/Http/Controllers/PieceController.php b/app/Http/Controllers/PieceController.php index 561fbf4..5186f71 100644 --- a/app/Http/Controllers/PieceController.php +++ b/app/Http/Controllers/PieceController.php @@ -25,7 +25,7 @@ public function index() */ public function create() { - return view('piece.create'); + // } /** @@ -36,13 +36,7 @@ public function create() */ public function store(PieceRequest $request) { - $data = $request->validated(); - $piece = new Piece(); - $piece->fill($data); - $piece->nationality()->associate($data['nationality']); - $piece->user()->associate($data['user']); - $piece->save(); - return redirect()->route('piece.show', $piece); + // } /** @@ -64,7 +58,7 @@ public function show(Piece $piece) */ public function edit(Piece $piece) { - return view('piece.edit', ['piece' => $piece]); + // } /** @@ -76,11 +70,7 @@ public function edit(Piece $piece) */ public function update(PieceRequest $request, Piece $piece) { - $data = $request->validated(); - $piece->fill($data); - $piece->nationality()->associate($data['nationality']); - $piece->save(); - return redirect()->route('piece.show', ['piece' => $piece]); + // } /** @@ -91,7 +81,6 @@ public function update(PieceRequest $request, Piece $piece) */ public function destroy(Piece $piece) { - $piece->delete(); - return redirect()->route('piece.index'); + // } } diff --git a/app/Models/Nationality.php b/app/Models/Nationality.php index be1ecb4..71b4ac6 100644 --- a/app/Models/Nationality.php +++ b/app/Models/Nationality.php @@ -8,4 +8,10 @@ class Nationality extends Model { use HasFactory; + + protected $fillable = ['name']; + + public function piece() { + return $this->hasMany(Piece::class); + } } diff --git a/resources/views/components/nationality/liste.blade.php b/resources/views/components/nationality/liste.blade.php index 1e9d8c0..2dc6eb3 100644 --- a/resources/views/components/nationality/liste.blade.php +++ b/resources/views/components/nationality/liste.blade.php @@ -3,7 +3,7 @@ <div class="flex justify-around"> @foreach ($nationalities as $nationality) <div class="border-2 border-red-900 flex flex-col"> - <h3 class="text-center">{{ $nationality->name }}</h3> + <a href="{{ route('nationality.show', ['nationality' => $nationality]) }}"><h3 class="text-center">{{ $nationality->name }}</h3></a> </div> @endforeach </div> diff --git a/resources/views/components/piece/liste.blade.php b/resources/views/components/piece/liste.blade.php index 6bf13d7..ccf5517 100644 --- a/resources/views/components/piece/liste.blade.php +++ b/resources/views/components/piece/liste.blade.php @@ -1,15 +1,16 @@ <div class="py-2"> <h1 class="text-2xl font-bold text-center">LISTE DE TOUTES LES PIECES :</h1> + {{-- <p>{{ dump($pieces) }}</p> --}} <div class="flex justify-around"> @foreach ($pieces as $piece) <div class="border-2 border-red-900 flex flex-col p-2"> <h3 class="text-center">{{ $piece->name }}</h3> <p><b>Description : </b>{{ $piece->description }}</p> <p><b>Prix : </b>{{ $piece->prix }} €</p> - <p><b>Nationalité : </b>{{ $piece->nationality->name ?? '' }}</p> - <!--pcq toutes les nationalités dont pas rempli, sinon mettre un if--> - <button class="border-2 border-green-500"><a href="{{ route('piece.show', ['piece' => $piece]) }}">EN SAVOIR - PLUS</a></button> + @if(isset($piece->nationality)) + <p><b>Nationalité : </b>{{ $piece->nationality->name }}</p> + @endif + <button class="border-2 border-green-500"><a href="{{ route('piece.show', ['piece' => $piece]) }}">EN SAVOIR PLUS</a></button> </div> @endforeach </div> diff --git a/resources/views/nationality/show.blade.php b/resources/views/nationality/show.blade.php new file mode 100644 index 0000000..525fb38 --- /dev/null +++ b/resources/views/nationality/show.blade.php @@ -0,0 +1,34 @@ +@auth +<x-app-layout> + <div class="flex justify-center"> + <div class="w-2/5"> + <div class="border-2 border-red-900 flex flex-col"> + <h2 class="text-center">NOM : {{ $nationality->name }}</h2> + <div> + <p>Une pèce peut avoir 1 et un seul pays</p> + <p>ATTENTION PROBLEME QQP</p> + {{-- @if ($nationality->pieces) + <ul> + @foreach ($nationality->pieces as $piece) + <li>{{ $piece->name }}</li> + @endforeach + </ul> + @endif --}} + </div> + </div> + </div> + </div> +</x-app-layout> +@endauth + +@guest +<x-guest-layout> + <div class="flex justify-center"> + <div class="w-2/5"> + <div class="border-2 border-red-900 flex flex-col"> + <h2 class="text-center">{{ $nationality->name }}</h2> + </div> + </div> + </div> +</x-guest-layout> +@endguest diff --git a/routes/web.php b/routes/web.php index d4bc176..fc77326 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,6 +1,8 @@ <?php use App\Http\Controllers\PieceController; +use App\Http\Controllers\Admin\PieceController as AdminPieceController; +use App\Http\Controllers\NationalityController; use Illuminate\Support\Facades\Route; /* @@ -27,6 +29,11 @@ Route::put('/piece/{piece}', [PieceController::class, 'update'])->name('piece.update'); Route::delete('/piece/{piece}', [PieceController::class, 'destroy'])->name('piece.destroy'); + +Route::get('/nationality/{nationality}', [NationalityController::class, 'show'])->name('nationality.show'); + + + // CONNECTED Route::middleware([ 'auth:sanctum', @@ -37,3 +44,9 @@ return view('dashboard'); })->name('dashboard'); }); + +Route::group(['as' => 'admin.', 'prefix'=>'admin/'], function () { + Route::resource('piece', AdminPieceController::class); + // Route::resource('nationality', AdminNationalityController::class); + // Route::resource('user', AdminUserController::class); +}); -- GitLab