Rutas dinámicas y maquetación de cursos en PHP con Laravel

Clase 14 de 21Curso de Introducción a Laravel 8

Resumen

¿Cómo crear una ruta dinámica para un curso?

Iniciar la creación de una ruta dinámica es un paso crucial en el desarrollo web, y más aún si trabajas con Laravel. La idea central es que cada curso tenga su propia URL única que permita invocarlo directamente. Para lograrlo, empieza por modificar tu archivo de rutas.

Route::get('/curso/{slog}', [CursoController::class, 'mostrar']);

En este fragmento, {slog} es el identificador único de cada curso, similar a un "nombre amigable" que sustituye el ID numérico tradicional. Laravel se encargará de realizar la consulta correspondiente de manera automática. Este tipo de enfoque no solo facilita tener URLs más amigables, sino que también optimiza el SEO de tu aplicación.

¿Cómo configurar y utilizar un controlador en Laravel?

Una vez que tienes configurada la ruta, el siguiente paso es definir el controlador que manejará la lógica para mostrar un curso específico. Para ello, necesitarás recibir un modelo en el controlador.

use App\Models\Curso;

public function mostrar(Curso $curso)
{
    return view('cursos.mostrar', compact('curso'));
}

Aquí, el método compact es utilizado para pasar variables de manera eficiente a la vista. Este método permite simplificar el código al no tener que declarar explícitamente cada elemento del array que se pasará a la vista.

¿Cómo estructurar y maquetar la vista del curso?

La vista es el lugar donde todo cobra vida visualmente. Una vez que hayas configurado tu controlador, es momento de trabajar en la maquetación de la página de detalle del curso.

Para crear una estructura organizada para la vista del curso, considera utilizar un sistema de cuadrícula. Por ejemplo, puedes definir una cuadrícula con tres columnas, asignando diferentes tamaños y márgenes a cada componente.

<div class="grid grid-cols-3 gap-4 mt-4">
    <div class="col-span-1 p-8 bg-gray-200">
        <ul class="flex flex-col">
            <li class="font-medium text-sm text-gray-400 uppercase mb-4">Contenido</li>
        </ul>
    </div>
    <div class="col-span-2 text-gray-700">
        <img src="{{ $curso->imagen }}" alt="Imagen del curso">
        <h2 class="text-4xl">{{ $curso->nombre }}</h2>
        <p>{{ $curso->descripcion }}</p>
    </div>
</div>

Aquí, haces uso de Tailwind CSS para definir estilos como márgenes, colores y distribución en la cuadrícula. Esto no solo mejora la legibilidad del código, sino que también permite actualizaciones rápidas y uniformes del diseño.

¿Cómo mostrar los detalles de un usuario que creó un curso?

El siguiente paso es presentar la información pertinente al creador del curso. Utiliza las relaciones definidas en tu modelo para acceder a esta información. Incluye una imagen de avatar y muestra el nombre del creador junto con la fecha de creación del curso.

<div class="flex mt-3">
    <img src="{{ $curso->usuario->avatar }}" class="h-10 w-10 rounded-full mr-2">
    <div>
        <p class="text-sm text-gray-500">{{ $curso->usuario->name }}</p>
        <p class="text-xs text-gray-300">{{ $curso->created_at->diffForHumans() }}</p>
    </div>
</div>

Este enfoque asegura que la página detalle del curso no solo muestre contenido relevante, sino también proporcione contexto sobre quién lo creó, enriqueciendo así la experiencia del usuario.

A medida que profundices en la implementación de estas características, te darás cuenta de cómo estas pequeñas configuraciones y ajustes contribuyen a una aplicación más integral. Esta es una fuerte demostración de cómo tecnologías avanzadas como PHP y frameworks como Laravel facilitan la construcción de aplicaciones escalables y eficaces sin necesidad de escribir extensas líneas de código. Continúa explorando y aprendiendo; estás en el camino correcto hacia el dominio del desarrollo web.