diff --git a/app/Http/Controllers/Admin/PieceController.php b/app/Http/Controllers/Admin/PieceController.php new file mode 100644 index 0000000000000000000000000000000000000000..5db02804301287e440607d11b5e5cc53089cb34b --- /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 4bb98187b08f60290755b36319712510c8803949..dd34c2e19500652f19f7948c2ce3c88a62dd5853 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 561fbf44d6cfd8342d29cebf18320538003ace2f..5186f71435794516e2a0d2990e86ce65a26b20d3 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 be1ecb401b90a33fc1fd5c771715deae78f9b276..71b4ac6e5e92f7c90d7bde7dc4b9ee549300029d 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 1e9d8c0ae67cc54bf0a835caaa5f225ab10b0b7c..2dc6eb332c99006eea1fd365c89fd79d2ff90976 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 6bf13d755d5cef95b7413f72670678ba9b256d61..ccf55172de17fde61f7458375039d8d8d254025f 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 0000000000000000000000000000000000000000..525fb385946b6bb962142ddfa956db4756622636 --- /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 d4bc176b10394f6cb889d5d9871283e0c2f15a0e..fc77326dfb7e74685f487e27d287cb5737b4391e 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); +});