Curso Laravel 11 Página Web Administrable
Definición de la estructura de urls en un proyecto Laravel 11
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']);
293 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© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023