Problem
Przeczytałem dokumentację na stronie Laravel, Stack Refflow i Google Jednak nie jestem pewien, czy rozumiem różnicę między Trasa :: Zasób
I Trasa :: kontroler
.
Jedna odpowiedź, którą znalazłem Trasa :: Zasób
był dla Crud. Jednak z Trasa :: kontroler
Możemy osiągnąć to samo, co w Trasa :: Zasób
i możemy określić tylko potrzebne działania.
Wydają się być jak rodzeństwo:
Trasa :: „Post”, „PostController”);Jak możemy wybrać, czego użyć? Jaka jest najlepsza praktyka?
Rozwiązanie
RESTful Resource Controller
Kontroler RESTful zasobów konfiguruje dla Ciebie niektóre domyślne trasy, a nawet je nazywa.
Trasa :: „użytkownicy”, „UsersController”);Daje ci te nazwane trasy:
Czasownik ścieżka Akcja nazwa trasyI skonfigurujesz swój kontroler coś takiego (aktywa = metody)
Klasa Usercontroller rozszerza BasecontrollerMożesz także wybrać, jakie działania są uwzględnione lub wykluczone w ten sposób:
Trasa :: „użytkownicy”, „UsersController”, [Dokumentacja kontrolera zasobów RESTFUL
Kontroler domniemany
Niejawny kontroler jest bardziej elastyczny. Zostajesz kierowany do metod kontrolera na podstawie typu i nazwy żądania HTTP. Jednak nie masz dla ciebie zdefiniowanych nazw tras i złapie wszystkie podfoldery dla tej samej trasy.
Trasa :: „Użytkownicy”, „UserController”);Doprowadziłby cię do skonfigurowania kontrolera z rodzajem programu RESTful Naming:
Klasa UserController rozszerza BasecontrollerDokumentacja niejawnego kontrolera
Dobrą praktyką jest korzystanie z tego, czego potrzebujesz, zgodnie z preferencjami. Osobiście nie lubię ukrytych kontrolerów, ponieważ mogą być nieuporządkowane, nie podawaj nazwisk i mogą być mylące podczas korzystania z tras rzemieślniczych PHP. Zazwyczaj używam kontrolerów zasobów RESTful w połączeniu z jawnymi trasami.
Inną opinią jest to, że możesz nie chcieć tworzyć zbyt wielu kontrolerów dla każdego działania, które zawierałyby wszystkie metody CRUD. W takim przypadku użyj ukrytych kontrolerów.