Skip to content
Ultima Laravel
  • Pages
    • Introducción
      • Ventajas de utilizar Laravel
      • Entorno de desarrollo
    • Instalación Laravel
      • Composer
      • * Kits de inicio
      • Crear Virtual Host
      • Las mejores extensiones de VS Code para Laravel
      • Cómo instalar proyectos existentes de Laravel
    • Crear una aplicación Laravel
      • Organización Laravel
    • Ejemplo tabla alumnos
      • Resumen ejemplo
      • BD y autenticacion
      • Ejemplo aula_online
      • Ejercicio
      • Entorno y mensajes de error
      • Authentication
    • Base de datos
      • Modelos
        • Polimorfismo
      • Eloquent ORM
      • Migraciones (Estructura de las tablas )
      • Factories
      • Seeders
      • Query Builder. Paginación
      • Ejemplo
    • Enrutamiento
      • Routes
      • icon picker
        Routes y Controller
      • Las respuestas
    • Vistas
      • Vistas en Laravel: blade
        • Vistas
        • Vistas y Rutas en Laravel
      • Plantillas mediante Blade
    • Controladores, middleware y formularios
      • Controladores
      • Middleware o filtros
      • Formularios
    • Validación
    • Sesiones
    • Resumen comandos
      • Artisan
    • Diferencias y Helpers
    • Enlaces interesante

Routes y Controller

Rutas y controladores

Las rutas anónimas son útiles para pequeñas tareas y pruebas.
Pero un trabajo serio necesita el uso de controladores (MVC)
use App\Http\Controllers\UserController;

//ruta prueba gestionada por el método "index" de PruebaController

Route::get('/photos', [PhotosController::class, 'index']);

Rutas resource: REST

Un CRUD necesita definir 7 rutas para 7 acciones.
Lectura: ruta de listado y de detalle
Creación: mostrar formulario de alta y procesarlo
Update: mostrar formulario de edición y procesarlo
Borrado
Route::get('photos/create', 'Photos\AdminController@create');
Route::post('photos', 'Photos\AdminController@store');
Route::get('photos', 'Photos\AdminController@index');
Route::get('photos/{id}', 'Photos\AdminController@show');
Route::get('photos/{id}/edit', 'Photos\AdminController@edit');
Route::put('photos/{id}', 'Photos\AdminController@update');
Route::delete('photos/{id}', 'Photos\AdminController@destroy');
Si definimos rutas de tipo resource se mapearán estas 7 rutas.
En la medida de lo posible estas rutas siguen el paradigma REST.
Son las acciones necesarias para un CRUD completo y usando los distintos verbos HTTP: get, post, put y delete.
Para ver como gestionar estas rutas y este tipo de controladores:
Definición de una ruta
Route::resource('photos', 'PhotoController');
Creación de un controlador resource:
php artisan make:controller PhotoController --resource
Lista de rutas:
Verb URI Action Route Name
GET /photos index photos.index
GET /photos/create create photos.create
POST /photos store photos.store
GET /photos/{photo} show photos.show
GET /photos/{photo}/edit edit photos.edit
PUT/PATCH /photos/{photo} update photos.update
DELETE /photos/{photo} destroy photos.destroy

Agrupación de Rutas en Laravel: 6 técnicas para organizar las rutas

Nuevo en Laravel 9: Route::controller()

Si tienes unos cuantos métodos en el Controlador pero no siguen la estructura estándar de los Recursos, puedes seguir agrupándolos, sin repetir el nombre del Controlador para cada método.
En su lugar:
Route::get('profile', [ProfileController::class, 'getProfile']);
Route::put('profile', [ProfileController::class, 'updateProfile']);
Route::delete('profile', [ProfileController::class, 'deleteProfile']);
Puedes hacerlo:
Route::controller(ProfileController::class)->group(function() {
Route::get('profile', 'getProfile');
Route::put('profile', 'updateProfile');
Route::delete('profile', 'deleteProfile');
});
Esta funcionalidad está disponible en Laravel 9, y en las últimas versiones menores de Laravel 8.

 
Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.