Problème
J'ai lu la documentation sur le site Web de Laravel, Stack Overflow et Google, mais je ne suis pas sûr de comprendre la différence entre Route :: ressource
et Itinéraire :: contrôleur
.
Une réponse que j'ai trouvée dit Route :: ressource
était pour crud. Cependant, avec Itinéraire :: contrôleur
Nous pouvons accomplir la même chose qu'avec Route :: ressource
Et nous pouvons spécifier uniquement les actions nécessaires.
Ils semblent être comme des frères et sœurs:
Route :: Controller («Post», «PostController»);Comment nous pouvons choisir quoi utiliser? Quelle est la meilleure pratique?
Solution
Contrôleur de ressources reposant
Un contrôleur de ressources reposant configure certains itinéraires par défaut pour vous et même les nomme.
Route :: Resource («Users», «UsersController»);Vous donne ces itinéraires nommés:
Nom de l'itinéraire d'action du chemin du verbeEt vous configureriez votre contrôleur quelque chose comme ça (actions = méthodes)
Classe UsersController étend BaseControllerVous pouvez également choisir les actions incluses ou exclues comme celle-ci:
Route :: Resource ('Users', 'UsersController', [Documentation du contrôleur de ressources Restful
Contrôleur implicite
Un contrôleur implicite est plus flexible. Vous êtes acheminé vers vos méthodes de contrôleur en fonction du type et du nom de la demande HTTP. Cependant, vous n'avez pas de noms de route définis pour vous et il attrapera tous les sous-dossiers pour le même itinéraire.
Route :: contrôleur («utilisateurs», «userController»);Vous amènerait à configurer le contrôleur avec une sorte de schéma de dénomination reposant:
classe UserController étend BaseControllerDocumentation implicite du contrôleur
Il est bon à utiliser ce dont vous avez besoin, selon vos préférences. Personnellement, je n'aime pas les contrôleurs implicites, car ils peuvent être désordonnés, ne fournissent pas de noms et peuvent être déroutants lors de l'utilisation de routes artisanales PHP. J'utilise généralement des contrôleurs de ressources RESTful en combinaison avec des itinéraires explicites.
L'autre opinion est que vous ne voudrez peut-être pas créer trop de contrôleurs pour chaque action, qui inclurait toutes les méthodes CRUD. Dans ce cas, utilisez les contrôleurs implicites.