Curso Laravel Página Web Administrable
¿Cómo crear rutas en Laravel en routes/web.php? Route::get
Las rutas en Laravel son una parte fundamental para el desarrollo de aplicaciones web, ya que permiten definir las URLs de la aplicación y mapearlas a controladores que procesan las solicitudes del usuario.
En Laravel 11, las rutas se han simplificado y mejorado con respecto a versiones anteriores. Las principales novedades son:
1. Nueva sintaxis para definir rutas:
Se ha introducido una nueva sintaxis más concisa para definir rutas. Ahora, en lugar de usar el método Route::
, se usa el prefijo route
seguido del método HTTP y la URL.
Ejemplo:
route('get', 'usuarios', 'UserController@index');
// Equivalente a:
Route::get('usuarios', 'UserController@index');
2. Rutas con nombre:
Ahora es posible asignar un nombre a las rutas, lo que facilita su uso en diferentes partes de la aplicación.
Ejemplo:
route('usuarios.index', 'UserController@index');
// En otro lugar de la aplicación...
redirect()->route('usuarios.index');
Las rutas se pueden agrupar para organizarlas y aplicarles middleware de forma conjunta.
Ejemplo:
route::group('admin', function () {
route('get', 'usuarios', 'AdminUserController@index');
route('post', 'usuarios', 'AdminUserController@store');
});
4. Soporte para controladores de archivos únicos:
Ahora es posible definir controladores en archivos PHP únicos, lo que facilita la organización del código.
Ejemplo:
// routes/web.php
route('get', 'usuarios', UserController::class . '@index');
// app/Http/Controllers/UserController.php
class UserController
{
public function index()
{
// ...
}
}
Veamos las rutas para la aplicación Laravel:
1. Incluyendo clases necesarias:
use Illuminate\Support\Facades\Route;
: Esta línea incluye la fachada Route
para definir rutas.use
incluyen varios controladores utilizados en la aplicación. Estos controladores manejan funcionalidades específicas como publicaciones de blog, secciones de administración y gestión de productos.2. Rutas de autenticación:
Auth::routes();
: Esta línea define todas las rutas de autenticación para inicio de sesión, registro, restablecimiento de contraseña, etc., gestionadas por el propio Laravel.3. Rutas de administración (protegidas por middleware):
admin
y requiere autenticación (middleware
=> 'auth'). Dentro de este grupo, se definen varios recursos utilizando Route::resource
.
ProfileController
, SlideController
) para manejar las solicitudes.4. Ruta de inicio:
/home
que llama al método index
de HomeController
. Esta ruta también se llama home
.5. Rutas públicas:
FrontController
para diversas funcionalidades como mostrar la página de inicio, información de la empresa, listado del blog, página de contacto y páginas de productos individuales.
/blog/{post:slug}
) usa un parámetro con nombre (slug
) para capturar el identificador único de una publicación del blog. De manera similar, las rutas de categoría y producto usan parámetros para identificar entidades específicas.En resumen, Define un conjunto de rutas bien estructurado para una aplicación Laravel, separando las áreas de administración y públicas y utilizando recursos para operaciones CRUD eficientes.
Ahora vemos el código en routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\BlogController;
use App\Http\Controllers\FrontController;
use App\Http\Controllers\Admin\PostController;
use App\Http\Controllers\Admin\SlideController;
use App\Http\Controllers\Admin\PaginaController;
use App\Http\Controllers\Admin\ProfileController;
use App\Http\Controllers\Admin\ProductoController;
use App\Http\Controllers\Admin\CategoriaController;
// auth
Auth::routes();
Route::group(['prefix'=>'admin','middleware'=>'auth'],function(){
Route::resource('/profile', ProfileController::class);
Route::resource('/slide', SlideController::class);
Route::resource('/pagina', PaginaController::class);
Route::resource('/categoria', CategoriaController::class);
Route::resource('/producto', ProductoController::class);
Route::resource('/post', PostController::class);
//...
});
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
// public
//Route::get('/', function () { return view('welcome'); });
Route::get('/', [FrontController::class, 'index']);
Route::get('/empresa', [FrontController::class, 'empresa']);
Route::get('/blog', [BlogController::class, 'index']);
Route::get('/blog/{post:slug}', [BlogController::class, 'post']);
Route::get('/contacto', [FrontController::class, 'contacto']);
Route::get('/{categoria:slug}', [FrontController::class, 'categoria']);
Route::get('/{categoria:slug}/{producto:id}', [FrontController::class, 'producto']);
438 visitas
« Capítulo 4 – Login Laravel | Rol de Usuario Simple
Capítulo 6 – Modelo y Migración Profile »
Descarga el código fuente del proyecto adquiriendo el curso completo
Comprar© Copyright Codea::App Cursos de Programación Online | LATAM | 2020 - 2024