Autour de Laravel

La route est longue ..

Avatar de PlySoft
PlySoft

Bonjour à tous, Je débute un projet perso Laravel 8 (breeze et tailwind avec un pc linux) et je suis confronté à un soucis de routage qui vient essentiellement de mon manque de savoir. J'ai créé ce qui va bien pour Créer/Modifier/Editer des ruchers (c'est un projet pour gerer mes ruches) mais je bloque sur la supression

Mon web.php avec l'edition (qui fonctionne) Mais la suppression renvoi sur adresse http://127.0.0.1:8000/ruchers/11 (qui est bien l'id du rucher à effacer) avec une page blanche.

//affichage de la page d'édition
Route::group(['middleware'=>['auth', 'verified']],function(){
Route::get('ruchers/{rucher}/edit', [RuchersController::class,'edit'])->name('ruchers.edit');});
//modification
Route::group(['middleware'=>['auth', 'verified']],function(){
Route::put('ruchers/{rucher}', [RuchersController::class,'update'])->name('ruchers.update');});
//suppression
Route::group(['middleware'=>['auth', 'verified']],function(){
Route::delete('ruchers/{rucher}', [RuchersController::class,'destroy'])->name('ruchers.destroy');});

Mon Rucherscontroller


    public function edit(Ruchers $rucher)
    {
        return view('ruchers.edit',[
            'rucher'=> $rucher
        ]);
    }

    public function update(Request $request, Ruchers $rucher)
    {
        $rucher->update([
        'name'=>$request->input('title'),
        'zipcode'=>$request->input('zipcode'),
        'ville'=>$request->input('ville'),
        'slug'=>Str::slug($request->input('title'),"-"),
     ]);
          return redirect()->route('dashboard');
   }

    public function destroy(Rucher $rucher)
    {
        dd($rucher);
        $rucher->delete();
            return redirect()->route('dashboard');
    }

Et la page qui devrait déclencher la suppression

                               <span class="bg-red-200 hover:bg-red-700 mr-3 py-1 px-2 rounded-full text-xs float-right ml-3">  
                                    <a href="{{route('ruchers.destroy' ,$rucher)}}" ><i class="far fa-trash-alt"></i> Supprimer</a></span>
                                    
                               <span class="bg-blue-200 hover:bg-blue-700 mr-3 py-1 px-2 rounded-full text-xs float-right ml-3">  
                                    <a href="{{route('ruchers.edit', $rucher)}}" ><i class="fas fa-pencil-alt"></i> Modifier</a></span>                         
                               <span class="bg-green-200 hover:bg-green-700 mr-3 py-1 px-2 rounded-full text-xs float-right ml-3">  
                                    <a href="{{route('ruchers.index' ,$rucher->id)}}" ><i class="far fa-eye"></i> Voir</a></span>

Merci pour vos avis, Bonne journée à tous, Plysoft

Posté il y a 1 mois
Avatar de CinquièmeDimension
CinquièmeDimension

Salut,

Alors je n'utilise jamais la méthode DELETE donc je ne sais pas si ce que je vais dire est pertinent. Mais un lien depuis un a href ne fais pas plutôt une requete en GET ?

Posté il y a 1 mois
Avatar de PlySoft
PlySoft

Bonjour, Merci pour ta réponse, je pense en effet que le get s'impose. Je viens de modifier le code, et cela marche bien. reste plus qu'à générer un modal de confirmation, sinon c'est violent .

Un grand merci, Bonne journée

                                    <form action="{{ route('ruchers.destroy' ,$rucher->id) }}" method="POST">
                                        @csrf
                                        @method('DELETE')
                                        <button  type="submit"  class="bg-red-200 hover:bg-red-700 mr-3 py-1 px-2 rounded-full text-xs float-right ml-3">  
                                           <i class="far fa-trash-alt"></i> Supprimer</a></button>

                                        <span class="bg-blue-200 hover:bg-blue-700 mr-3 py-1 px-2 rounded-full text-xs float-right ml-3">  
                                            <a href="{{route('ruchers.edit', $rucher)}}" ><i class="fas fa-pencil-alt"></i> Modifier</a></span>                         
                                       <span class="bg-green-200 hover:bg-green-700 mr-3 py-1 px-2 rounded-full text-xs float-right ml-3">  
                                            <a href="{{route('ruchers.index' ,$rucher->id)}}" ><i class="far fa-eye"></i> Voir</a></span>
                                    </form>
Posté il y a 1 mois
Avatar de CinquièmeDimension
CinquièmeDimension

Ravi d'avoir été utile

Posté il y a 1 mois

Vous ne pouvez pas répondre à ce sujet.