Problema
Ho letto la documentazione sul sito Web di Laravel, Stack Overflow e Google, tuttavia non sono sicuro di capire la differenza tra Route :: Resource
E Percorso :: Controller
.
Una risposta che ho trovato ha detto Route :: Resource
era per Crud. Tuttavia, con Percorso :: Controller
Possiamo realizzare la stessa cosa di Route :: Resource
e possiamo specificare solo le azioni necessarie.
Sembrano essere fratelli:
Route :: Controller ('Post', 'PostController');Come possiamo scegliere cosa usare? Qual è la migliore pratica?
Soluzione
Controller di risorse riposante
Un controller di risorse riposante imposta alcuni percorsi predefiniti per te e persino le nomina.
Route :: Resource ('Users', 'Usersontroller');Ti dà questi percorsi chiamati:
Verb Path Action Route NomeE imposteresti il tuo controller qualcosa del genere (Actions = Methods)
Class Usersontroller estende BaseControllerPuoi anche scegliere quali azioni sono incluse o escluse in questo modo:
Route :: Resource ("Utenti", "Usersontroller", [Documentazione del controller di risorse riposante
Controller implicito
Un controller implicito è più flessibile. Vieni indirizzato ai metodi del controller in base al tipo e al nome della richiesta HTTP. Tuttavia, non hai i nomi del percorso definiti per te e catturerà tutte le sottocartelle per lo stesso percorso.
Route :: Controller ("Utenti", "UserController");Ti porterebbe a impostare il controller con una sorta di schema di denominazione riposante:
Class UserController estende BaseControllerDocumentazione implicita del controller
È buona pratica usare ciò di cui hai bisogno, secondo le tue preferenze. Personalmente non mi piacciono i controller impliciti, perché possono essere disordinati, non forniscono nomi e possono essere confusi quando si utilizzano percorsi artigianali PHP. In genere uso i controller di risorse riposanti in combinazione con percorsi espliciti.
L'altra opinione è che potresti non voler creare troppi controller per ogni azione, che includerebbe tutti i metodi CRUD. In tal caso, utilizzare i controller impliciti.