laravel - Controller ou resource controller, como determinar qual utilizar? - Stack Overflow em Português
Estou criando uma pequena aplicação utilizando o Laravel 5.6, entretanto, estou com dificuldade para determinar a nomenclatura das rotas, ou melhor, para determinar se utilizo ou não resource Controller.
Atualmente tenho essas rotas:
Route::get('/alterar-senha','Painel\AlterarSenhaController@index')
->name('alterar-senha');
Route::post('/alterar-senha','Painel\AlterarSenhaController@alterarSenha')
Seria relevante utilizar resource Controller para melhorarar a estética do meu arquivos de rotas?
Observação: ainda terei outras rotas como alterar-email
Route::resource('alterar-senha', 'Painel\AlterarSenhaController')
A rota para alterar email segui a mesma abordagem. Ao utilizar resource consigo ao invés de ter 4 linhas, ter somente 2 e visualmente uma estrutura mais agradável aos olhos, mas essa abordagem seria realmente valida?
Projeto mencionado github
editada 3/04/18 às 23:26
perguntada 3/04/18 às 2:50
O Resource Controller é um controlador normal que implementa funções de CRUD por padrão , porém , ao definir um resource no arquivo de rotas , você cria várias "rotas" sem ter que escrever código para estas rotas. Veja o exemplo colocado na documentação . Criando uma rota resource para o controller PhotoController :
Você tem as seguintes rotas.
Primeiro o método HTTP utilizado, seguido da URL que será utilizada, após temos o método na Controller que será executado e , por último, o nome da rota.
POST /photos store photos.store GET /photos/{photo} show photos.show
Você poderá ver melhor utilizando o seguinte comando no prompt.
Veja que você apenas simplificou , "agrupando" todos os tipos de requisições HTTP em uma definição de rota.
Se a resposta for útil , não esqueca de marcar como respondida.
Sobre qual utilizar, depende muito de sua estrutura de projeto e de como todas suas rotas serão organizadas. Você pode definir os resources que serão utilizados e também adicionar rotas específicas como alterar-email.