Inicio » Cursos » Laravel 11 Página Web Administrable

Curso Laravel 11 Página Web Administrable

Capitulo 5 ➜ Estructura de urls en un proyecto Laravel 11

Estructura de urls en un proyecto Laravel 11

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.

Rutas en Laravel 11: Una breve introducción

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()
    {
        // ...
    }
}

 

 

Definiendo las rutas para nuestro proyecto web

Rutas de una página web con Laravel 11

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.
  • Las siguientes instrucciones 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):

  • El código define un grupo de rutas con el prefijo admin y requiere autenticación (middleware => 'auth'). Dentro de este grupo, se definen varios recursos utilizando Route::resource.
    • Los recursos normalmente administran un grupo de rutas relacionadas para crear, leer, actualizar y eliminar datos (operaciones CRUD).
    • Cada ruta de recurso usa un controlador específico (por ejemplo, ProfileControllerSlideController) para manejar las solicitudes.

4. Ruta de inicio:

  • Define una ruta para /home que llama al método index de HomeController. Esta ruta también se llama home.

5. Rutas públicas:

  • Esta sección define rutas accesibles para todos (no requieren autenticación).
  • Utiliza 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.
    • Observa cómo la ruta del blog (/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']);

 


132 visitas

Sigue con el curso: Capítulo 6 – Modelo y Migración Profile

Descarga el código del proyecto

Descarga el código fuente del proyecto adquiriendo el curso completo

Comprar

Más cursos que pueden interesarte

Más cursos

Codea Codea App

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023