Problema
Eu li a documentação sobre o site do Laravel, Stack Overflow e Google, mas não tenho certeza de que entendo a diferença entre Route :: Recurso
e Route :: Controller
.
Uma resposta que encontrei disse Route :: Recurso
foi para Crud. No entanto, com Route :: Controller
Podemos realizar a mesma coisa que Route :: Recurso
E podemos especificar apenas as ações necessárias.
Eles parecem ser como irmãos:
Route :: Controller ('Post', 'Postcontroller');Como podemos escolher o que usar? Qual é a melhor prática?
Solução
Controlador de Recursos RESTful
Um controlador de recurso RESTful configura algumas rotas padrão para você e até nomeia.
Route :: Resource ('Usuários', 'Usuárioscontroller');Dá a você essas rotas nomeadas:
Nome da rota da ação do caminho do verboE você configuraria seu controlador algo assim (ações = métodos)
Classe UsersController estende o BaseControllerVocê também pode escolher quais ações estão incluídas ou excluídas assim:
Route :: Resource ('Usuários', 'Usuárioscontroller', [Documentação do controlador de recursos RESTful
Controlador implícito
Um controlador implícito é mais flexível. Você é roteado para seus métodos controladores com base no tipo de solicitação HTTP e nome. No entanto, você não tem nomes de rota definidos para você e ele pegará todas as subpastas para a mesma rota.
Route :: Controller ('Usuários', 'UserController');Levaria você a configurar o controlador com uma espécie de esquema de nomeação repousante:
classe UserController estende BasecontrollerDocumentação implícita do controlador
É uma boa prática usar o que você precisa, conforme sua preferência. Pessoalmente, não gosto dos controladores implícitos, porque eles podem ser confusos, não fornecem nomes e podem ser confusos ao usar rotas artesanais de PHP. Normalmente uso controladores de recursos RESTful em combinação com rotas explícitas.
A outra opinião é que você pode não querer criar muitos controladores para cada ação, que incluiria todos os métodos CRUD. Nesse caso, use os controladores implícitos.