Laravel est un framework PHP puissant avec une large gamme d'applications dans le domaine du développement web. Parmi eux, le routage des ressources est l'un des concepts très importants de Laravel, qui peut nous aider à créer rapidement des API RESTful. Dans le processus d'utilisation du routage des ressources, les opérations de suppression sont très courantes, cet article présente donc principalement l'opération de suppression du routage des ressources Laravel.
1. Introduction au routage des ressources
Dans Laravel, le routage des ressources peut être défini via la méthode Route::resource. Cette méthode définira automatiquement sept méthodes d'opération de routage couramment utilisées, à savoir : indexer, créer, stocker, afficher, éditer, mettre à jour et détruire.
Par exemple, nous pouvons définir un itinéraire de ressources simple à travers le code suivant :
Route::resource('posts', 'PostController');
De cette façon, Laravel générera automatiquement /posts, /posts/create, /posts/{post}, /posts/{post}/ modifier pour nous Attendez sept itinéraires.
2. Opération de suppression
Dans le routage des ressources, l'opération de suppression correspond à la méthode de destruction. Lorsque l'utilisateur clique sur le bouton Supprimer dans l'application Web, nous devons construire une requête DELETE et Laravel appellera la méthode destroy pour terminer l'opération.
Nous devons définir une route pour la méthode destroy, par exemple :
Route::delete('posts/{post}', 'PostController@destroy')->name('posts.destroy');
Cette route correspondra à la requête DELETE et au chemin /posts/{post}, et transmettra la requête à la méthode destroy de PostController.
Dans le contrôleur, nous devons obtenir l'objet entité correspondant à l'opération de suppression et appeler la méthode delete pour le supprimer de la base de données. Par exemple :
public function destroy($id) { $post = Post::find($id); $post->delete(); return redirect()->route('posts.index'); }
Ici, nous utilisons d'abord la méthode Post::find pour trouver l'objet entité à supprimer, puis utilisons la méthode delete pour le supprimer de la base de données. Enfin, nous utilisons la méthode de redirection pour rediriger l'utilisateur vers la page de liste des publications.
Dans le formulaire HTML, nous devons générer un formulaire pour le bouton de suppression et y ajouter une méthode de champ caché pour indiquer qu'il s'agit d'une demande DELETE.
Par exemple, nous pouvons utiliser le code suivant pour générer un bouton de suppression :
<form action="{{ route('posts.destroy', $post->id) }}" method="POST"> {{ csrf_field() }} {{ method_field('DELETE') }} <button type="submit">删除</button> </form>
Ici, nous utilisons la méthode route pour générer le chemin /posts/{post} avec des paramètres, et définissons l'attribut de méthode du formulaire sur DELETE . Nous utilisons ensuite la méthode csrf_field pour générer le jeton CSRF et la méthode method_field pour générer le champ _method.
Enfin, lors de la définition de l'itinéraire, nous pouvons définir un nom de route nommé posts.destroy pour la méthode de destruction. Ce nom peut nous aider à générer plus facilement l'URL et à rediriger vers la page une fois l'opération de suppression terminée.
Par exemple, nous pouvons utiliser le code suivant pour générer une réponse de redirection :
return redirect()->route('posts.index');
Ici, nous utilisons la méthode route et passons le paramètre posts.index pour générer le chemin posts.index, redirigeant ainsi l'utilisateur vers les publications page de liste.
3. Résumé
Grâce aux étapes ci-dessus, nous pouvons facilement implémenter l'opération de suppression du routage des ressources dans Laravel. Lorsque l'utilisateur clique sur le bouton Supprimer dans l'application Web, Laravel construira une requête DELETE et appellera la méthode destroy du contrôleur pour terminer la suppression. L'utilisation de routes nommées facilite la génération d'URL et la redirection des réponses.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!