Controlador de recursos RESTful
Un controlador de recursos RESTful configura algunas rutas predeterminadas para usted e incluso las nombra.
Route::resource('users', 'UsersController');
Te da estas rutas con nombre:
Verb Path Action Route Name
GET /users index users.index
GET /users/create create users.create
POST /users store users.store
GET /users/{user} show users.show
GET /users/{user}/edit edit users.edit
PUT|PATCH /users/{user} update users.update
DELETE /users/{user} destroy users.destroy
Y configuraría su controlador de esta manera (acciones = métodos)
class UsersController extends BaseController {
public function index() {}
public function show($id) {}
public function store() {}
}
También puede elegir qué acciones se incluyen o excluyen de esta manera:
Route::resource('users', 'UsersController', [
'only' => ['index', 'show']
]);
Route::resource('monkeys', 'MonkeysController', [
'except' => ['edit', 'create']
]);
Documentación del controlador de recursos RESTful
Controlador implícito
Un controlador implícito es más flexible. Se le enrutará a los métodos de su controlador en función del tipo y el nombre de la solicitud HTTP. Sin embargo, no tiene nombres de ruta definidos para usted y capturará todas las subcarpetas para la misma ruta.
Route::controller('users', 'UserController');
Le llevaría a configurar el controlador con una especie de esquema de nombres RESTful:
class UserController extends BaseController {
public function getIndex()
{
// GET request to index
}
public function getShow($id)
{
// get request to 'users/show/{id}'
}
public function postStore()
{
// POST request to 'users/store'
}
}
Documentación implícita del controlador
Es una buena práctica usar lo que necesita, según su preferencia. Personalmente no me gustan los controladores implícitos , porque pueden ser desordenados, no proporcionan nombres y pueden ser confusos cuando se usan php artisan routes
. Normalmente uso controladores de recursos RESTful en combinación con rutas explícitas.