Laravel · Ruta para principiantes · PHP

Aprender Laravel desde cero: ruta paso a paso para principiantes

Para aprender Laravel desde cero conviene avanzar en un orden concreto: PHP, POO, Composer, HTTP, rutas, controllers, Blade, bases de datos, Eloquent, migraciones, validación, middleware, autenticación, APIs y testing. Laravel puede acelerar mucho el desarrollo, pero aprender únicamente comandos del framework sin entender lo que ocurre debajo termina creando dependencia de tutoriales.

PHP · POO · Composer Blade · Eloquent APIs · Testing · Seguridad
Respuesta rápida

¿Cómo aprender Laravel desde cero?

No empieces memorizando comandos de Artisan. Empieza comprendiendo PHP.

Después aprende programación orientada a objetos, Composer, HTTP y SQL. Con esa base puedes entrar a Laravel y estudiar routing, controllers, Blade, Eloquent, migraciones, validación y middleware.

El siguiente nivel consiste en crear aplicaciones completas con autenticación, permisos, APIs, testing, colas e integraciones.

La meta no debería ser “saber Laravel”, sino poder construir una aplicación Laravel que entiendas, puedas depurar y seas capaz de modificar sin depender de un tutorial.

Publicidad
Mapa de aprendizaje

La ruta completa para aprender Laravel

01

PHP

Sintaxis, funciones, arrays y errores.

02

POO

Clases, objetos, interfaces y dependencias.

03

Composer

Dependencias, namespaces y autoload.

04

HTTP

Request, response, rutas y métodos.

05

Laravel

Routing, controllers, Blade y Eloquent.

06

Proyecto real

Auth, permisos, API y testing.

Publicidad
Antes de empezar

¿Necesitas saber PHP antes de Laravel?

Sí, al menos a un nivel suficientemente sólido como para entender el código que Laravel ejecuta.

Esto no significa que debas convertirte primero en experto en PHP.

Pero deberías comprender con comodidad:

01

Variables y tipos.

02

Condiciones y ciclos.

03

Arrays.

04

Funciones.

05

Excepciones.

06

Clases y objetos.

¿Por qué?

Porque prácticamente todo lo que escribas dentro de Laravel sigue siendo PHP.

Si ves:

Laravel PHP
<?php

Route::get('/productos', function () {
    return Producto::all();
});

hay funciones anónimas, llamadas estáticas, clases y objetos trabajando debajo de esa sintaxis.

Base recomendada

Si todavía estás comenzando con PHP, fortalece primero los fundamentos

Variables, funciones, formularios, MySQL y POO.

Aprender PHP desde cero →
Paso 1

Aprende POO antes de intentar comprender la arquitectura de Laravel

Laravel utiliza clases constantemente.

Controllers, models, middleware, jobs, events, listeners y otros componentes se construyen alrededor de objetos.

Clases

Debes entender cómo declarar propiedades, métodos y constructores.

Interfaces

Laravel utiliza contratos en distintas partes de su arquitectura.

Inyección de dependencias

Resulta especialmente importante cuando comienzas a utilizar el contenedor de servicios.

Dependencia PHP
<?php

final class CrearPedido
{
    public function __construct(
        private CalculadorPrecio $calculador
    ) {}
}

Este tipo de código aparecerá una y otra vez dentro de aplicaciones Laravel.

Aprender POO en PHP →
Publicidad
Paso 2

Composer es una pieza fundamental antes de entrar profundamente a Laravel

Laravel utiliza Composer para gestionar dependencias y autoloading.

Deberías comprender al menos:

01

composer.json.

02

composer.lock.

03

composer install.

04

composer update.

05

Namespaces.

06

Autoload PSR-4.

Sin esta base, cuando Laravel cargue clases, instale paquetes o resuelva dependencias, todo puede parecer “magia”.

Dependencias

Composer explica gran parte de cómo Laravel organiza paquetes y clases

Autoload, namespaces, dependencias y versiones.

Aprender Composer →
Paso 3

Aprende HTTP antes de aprender rutas de memoria

Laravel es un framework web.

Eso significa que buena parte de su funcionamiento gira alrededor de solicitudes y respuestas HTTP.

Debes comprender qué significan:

GET

Consultar información.

POST

Enviar o crear información.

PUT

Actualizar según el contrato del recurso.

PATCH

Modificar parcialmente.

DELETE

Eliminar.

También necesitas códigos de estado

200, 201, 404, 403, 422 y 500 no son números decorativos.

Forman parte del contrato entre cliente y servidor.

Paso 4

Crea tu primer proyecto Laravel y explora su estructura

Después de instalar los requisitos adecuados para tu entorno, puedes crear un proyecto mediante Composer.

Crear proyecto Composer
composer create-project laravel/laravel mi-proyecto

No empieces modificando archivos al azar.

Primero entiende la estructura.

Proyecto Laravel
app/
bootstrap/
config/
database/
public/
resources/
routes/
storage/
tests/
vendor/

No necesitas memorizar todos los directorios el primer día

Concéntrate inicialmente en:

01

routes/

02

app/

03

resources/

04

database/

Publicidad
Paso 5

Aprende routing antes de construir controllers complejos

Empieza con una ruta sencilla.

Ruta simple Laravel
<?php

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return 'Mi primera aplicación Laravel';
});

Aquí puedes entender varias cosas a la vez.

Route::get() registra una ruta que responde a solicitudes GET.

/ representa la URL solicitada.

La función devuelve la respuesta.

Después utiliza parámetros

Parámetro Laravel
<?php

Route::get(
    '/usuarios/{id}',
    function (int $id) {
        return 'Usuario ' . $id;
    }
);

El objetivo todavía no es construir una gran aplicación.

Es comprender cómo Laravel relaciona una solicitud HTTP con código PHP.

Paso 6

Pasa de closures a controllers cuando las rutas empiecen a crecer

Puedes generar un controller.

Artisan Controller
php artisan make:controller ProductoController

Después, una ruta puede dirigir la solicitud hacia ese controller.

Ruta Laravel
<?php

use App\Http\Controllers\ProductoController;
use Illuminate\Support\Facades\Route;

Route::get(
    '/productos',
    [ProductoController::class, 'index']
);

Y el controller:

ProductoController.php PHP
<?php

namespace App\Http\Controllers;

final class ProductoController extends Controller
{
    public function index()
    {
        return 'Listado de productos';
    }
}

Aprende qué responsabilidad tiene el controller

No lo conviertas automáticamente en el lugar donde vive:

SQL, reglas de negocio, emails, pagos, archivos y toda la aplicación.

Paso 7

Aprende Blade para separar la presentación de la lógica del servidor

En lugar de devolver una cadena, el controller puede devolver una vista.

Controller Laravel
<?php

public function index()
{
    return view('productos.index');
}

Y dentro de la vista:

index.blade.php Blade
<h1>Productos</h1>

<p>
    Bienvenido al catálogo.
</p>

Después pasa datos a Blade

Controller Datos
<?php

public function index()
{
    $productos = [
        'Notebook',
        'Monitor',
        'Teclado'
    ];

    return view(
        'productos.index',
        compact('productos')
    );
}

Y los recorres:

Blade foreach
@foreach ($productos as $producto)

    <p>
        {{ $producto }}
    </p>

@endforeach
Paso 8

Aprende SQL antes de esconderlo detrás de Eloquent

Laravel facilita muchísimo el trabajo con bases de datos.

Precisamente por eso puedes caer en el error de no aprender qué está ocurriendo debajo.

Antes de depender del ORM, deberías comprender:

01

SELECT.

02

INSERT.

03

UPDATE.

04

DELETE.

05

JOIN.

06

Índices.

07

Claves foráneas.

08

Transacciones.

SQL antes del ORM

Eloquent es más fácil de utilizar cuando entiendes qué ocurre en MySQL

Relaciones, consultas, índices y transacciones.

PHP con MySQL →
Publicidad
Paso 9

Aprende migraciones para que la estructura de datos forme parte del proyecto

Supongamos que necesitas una tabla de productos.

Puedes generar una migración y describir su estructura.

Migración Laravel
<?php

Schema::create('productos', function (Blueprint $table) {

    $table->id();

    $table->string('nombre');

    $table->decimal(
        'precio',
        12,
        2
    );

    $table->timestamps();
});

Luego puedes aplicar las migraciones.

Terminal Artisan
php artisan migrate

Aprende también por qué existen

El verdadero beneficio no es solamente “crear tablas con PHP”.

Es mantener la evolución del esquema como parte versionable del proyecto.

Paso 10

Aprende modelos Eloquent empezando por operaciones sencillas

Producto.php Eloquent
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

final class Producto extends Model
{
    protected $fillable = [
        'nombre',
        'precio'
    ];
}

Consultar

SELECT Eloquent
$productos = Producto::query()
    ->orderByDesc('id')
    ->get();

Crear

INSERT Eloquent
$producto = Producto::create([
    'nombre' => 'Monitor',
    'precio' => 129990
]);

Buscar

Buscar Eloquent
$producto = Producto::find($id);

No intentes aprender todas las funciones del ORM de memoria.

Aprende primero el flujo CRUD y después añade relaciones, scopes, eager loading y consultas más complejas.

Publicidad
Primer proyecto serio

Construye un CRUD completo antes de saltar a arquitecturas complejas

Un CRUD bien construido permite practicar casi todos los fundamentos iniciales.

CRUD Flujo
GET    /productos
GET    /productos/crear
POST   /productos
GET    /productos/{id}
GET    /productos/{id}/editar
PUT    /productos/{id}
DELETE /productos/{id}

Durante ese proyecto practicarás:

01

Routing.

02

Controllers.

03

Blade.

04

Models.

05

Migrations.

06

Validación.

Un CRUD no es “demasiado básico” si lo utilizas para comprender correctamente el ciclo completo.

El error es construirlo copiando código sin entender cómo conecta cada componente.

Paso 11

Añade validación antes de guardar información

El usuario puede enviar campos vacíos, tipos incorrectos o valores fuera de rango.

Validación Laravel
<?php

$datos = $request->validate([
    'nombre' => [
        'required',
        'string',
        'max:150'
    ],
    'precio' => [
        'required',
        'numeric',
        'min:0'
    ]
]);

Después puedes utilizar los datos validados.

Crear Eloquent
Producto::create($datos);

Más adelante separa validaciones complejas

Cuando el proyecto crezca, no necesitas mantener todas las reglas dentro de cada controller.

Paso 12

Aprende relaciones después de dominar CRUD con una sola tabla

Una aplicación real rara vez está compuesta por tablas completamente aisladas.

Por ejemplo:

Modelo Relaciones
Usuario
   ↓
muchos
   ↓
Pedidos

Pedido
   ↓
muchos
   ↓
Productos

Uno a muchos

Usuario.php Eloquent
<?php

public function pedidos()
{
    return $this->hasMany(Pedido::class);
}

Inversa

Pedido.php Eloquent
<?php

public function usuario()
{
    return $this->belongsTo(Usuario::class);
}

Aquí comienzan a conectarse realmente tus conocimientos de SQL con Eloquent.

Paso 13

Aprende pronto qué es el problema N+1

Cuando empiezas con Eloquent, una línea de código puede parecer inocente y producir muchas consultas.

Imagina que cargas cien pedidos y después consultas el usuario de cada pedido por separado.

Podrías terminar realizando una consulta inicial y muchas consultas adicionales.

Eager loading

Laravel permite cargar relaciones de forma anticipada cuando corresponde.

Eager loading Eloquent
$pedidos = Pedido::query()
    ->with('usuario')
    ->get();
Aprender Eloquent sin aprender a observar las consultas puede crear aplicaciones lentas sin que notes el problema.
Publicidad
Paso 14

Aprende middleware cuando necesites aplicar reglas alrededor de varias rutas

Imagina que varias páginas solo pueden ser utilizadas por usuarios autenticados.

No quieres repetir la misma comprobación manualmente en cada controller.

El middleware permite intervenir durante el ciclo de la solicitud.

Concepto Middleware
Request
   ↓
Middleware
   ↓
Route
   ↓
Controller
   ↓
Response

Puede utilizarse para autenticación y otras tareas relacionadas con solicitudes.

No pongas toda la lógica del negocio dentro de middleware.

Su función debería permanecer relacionada con el flujo HTTP.

Paso 15

Añade autenticación después de comprender rutas, controllers, datos y middleware

El login no debería ser lo primero que construyas cuando todavía no comprendes cómo funciona una solicitud Laravel.

Autenticación

Determina quién es el usuario.

Autorización

Determina qué puede hacer ese usuario.

Esta diferencia será fundamental cuando agregues:

01

Administradores.

02

Clientes.

03

Recursos privados.

04

Operaciones restringidas.

Paso 16

Aprende autorización antes de crear paneles con múltiples tipos de usuario

Imagina un sistema de proyectos.

Un usuario autenticado intenta acceder a:

Ruta HTTP
GET /proyectos/157

La aplicación no debería permitir el acceso simplemente porque inició sesión.

También debe comprobar si ese proyecto pertenece al usuario o si posee los permisos necesarios.

Autenticado no significa autorizado.

Esta diferencia es una de las bases de cualquier aplicación multiusuario.

Publicidad
Paso 17

Después de una aplicación web tradicional, crea una API

Este paso te obliga a pensar de manera diferente.

Ya no devolverás necesariamente una vista Blade.

Puedes devolver JSON:

JSON Laravel
<?php

return response()->json([
    'data' => $productos
]);

Aquí necesitas comprender:

01

Métodos HTTP.

02

Status codes.

03

JSON.

04

Autenticación.

05

Autorización.

06

Paginación.

Aprende el fundamento

Si REST todavía te parece abstracto, construye primero una API con PHP

Comprenderás mejor todo lo que Laravel automatiza.

Crear API REST con PHP →
Paso 18

Separa reglas de negocio cuando los controllers empiecen a crecer

Supongamos que crear un pedido requiere:

01

Comprobar stock.

02

Calcular descuentos.

03

Crear pedido.

04

Reservar inventario.

05

Emitir una notificación.

Todo eso dentro de una sola acción del controller comienza a ser difícil de mantener.

Puedes mover el proceso a una clase especializada.

Caso de uso PHP
<?php

final class CrearPedido
{
    public function __construct(
        private Inventario $inventario,
        private PedidoRepository $pedidos
    ) {}

    public function ejecutar(
        DatosPedido $datos
    ): Pedido {

        // Reglas del negocio.

        return $pedido;
    }
}

No necesitas crear este tipo de abstracción para cada línea de código.

Úsala cuando realmente ayude a separar responsabilidades.

Paso 19

Aprende testing antes de considerar terminado tu aprendizaje básico

Una aplicación no debería depender únicamente de que hagas clic manualmente en cada pantalla.

Prueba reglas

¿Un descuento se calcula correctamente?

Prueba endpoints

¿Un usuario sin sesión recibe el resultado esperado?

Prueba autorización

¿Un usuario puede editar datos ajenos?

Prueba validación

¿La aplicación rechaza datos incorrectos?

No necesitas tener cientos de tests para empezar.

Empieza por los comportamientos importantes de tu proyecto.

Paso 20

Aprende colas cuando aparezcan tareas que no deberían bloquear al usuario

No necesitas estudiar queues en el primer día.

Tienen sentido cuando tu aplicación empieza a ejecutar procesos como:

01

Enviar correos.

02

Generar documentos.

03

Importar archivos.

04

Sincronizar APIs.

05

Procesar IA.

Si una operación puede demorarse varios segundos o minutos, probablemente no quieras mantener al navegador esperando todo ese tiempo.

Laravel + IA

Utiliza inteligencia artificial para acelerar el aprendizaje, no para saltarte los fundamentos

Un asistente puede ayudarte a explicar:

01

Una ruta.

02

Un controller.

03

Una migración.

04

Una relación Eloquent.

05

Un error.

También puede generar una primera implementación.

Pero hay una diferencia enorme entre:

Aprendizaje IA
"Hazme un CRUD completo en Laravel."

y:

Aprendizaje IA
"Explícame paso a paso
cómo fluye una petición POST
desde la ruta hasta el controller,
la validación, Eloquent
y la respuesta.

Después proponme un ejercicio
sin darme la solución completa."

El segundo enfoque te obliga a desarrollar comprensión.

Programar con IA

Convierte la IA en tutor, revisor y compañero de debugging

No solamente en generador de código.

Aprender programación con IA →
Publicidad
Plan inicial

Una ruta de cuatro etapas para aprender Laravel

Etapa Temas Proyecto
Etapa 1 PHP, POO, Composer, HTTP Pequeña app PHP sin framework
Etapa 2 Routes, controllers, Blade Catálogo sin base de datos
Etapa 3 MySQL, migrations, Eloquent, validation CRUD completo
Etapa 4 Auth, permissions, APIs, testing Aplicación multiusuario
No interpretes estas etapas como un plazo garantizado.

El tiempo depende de tu experiencia, horas de práctica y profundidad con que trabajes cada tema.

Proyecto 1

Gestor de tareas: tu primer proyecto Laravel

Empieza con un sistema pequeño.

Cada tarea puede tener:

01

Título.

02

Descripción.

03

Estado.

04

Fecha.

Construye:

01

Listado.

02

Creación.

03

Edición.

04

Eliminación.

Con eso practicarás routing, Blade, controllers, migrations, Eloquent y validation.

Proyecto 2

Sistema de reservas: empieza a trabajar con reglas reales

Ahora añade:

01

Usuarios.

02

Horarios.

03

Disponibilidad.

04

Estados.

05

Permisos.

Este proyecto te obliga a pasar de un CRUD sencillo a reglas de negocio.

Por ejemplo

No permitir dos reservas incompatibles para el mismo horario.

Esa regla ya no se resuelve simplemente aprendiendo un comando de Laravel.

Proyecto 3

Crea una API REST para separar frontend y backend

Construye endpoints para:

API REST
GET    /api/productos
GET    /api/productos/{id}
POST   /api/productos
PATCH  /api/productos/{id}
DELETE /api/productos/{id}

Después consume esa API desde JavaScript o una aplicación externa.

Esta etapa fortalece tus conocimientos de:

HTTP, JSON, recursos, autenticación y arquitectura.

Señales de progreso

¿Cuándo puedes decir que ya manejas Laravel a nivel inicial?

No cuando hayas terminado un curso.

Una mejor referencia es poder construir sin instrucciones detalladas:

01

Una ruta.

02

Un controller.

03

Una migración.

04

Un modelo.

05

Un CRUD.

06

Una relación.

07

Una validación.

08

Una prueba básica.

Y además poder explicar cómo se conectan esas piezas.

Errores de principiantes

Qué puede frenar tu aprendizaje de Laravel

Error Saltarse PHP
Fundamentos
Error Memorizar Artisan
Comprende
Error Aprender Eloquent sin SQL
SQL
Error Copiar proyectos completos
Construye
Error Controllers con toda la lógica
Separa
Error Ignorar seguridad
Verifica
Error No mirar consultas
Optimiza
Error Depender completamente de IA
Aprende
Ruta resumida

El mejor camino para aprender Laravel desde cero

Aprende primero PHP a un nivel suficiente.

Estudia POO e inyección de dependencias.

Comprende Composer, namespaces y autoload.

Aprende HTTP antes de memorizar rutas.

Domina routes, controllers y Blade.

Aprende SQL, migrations y Eloquent.

Construye un CRUD completo.

Añade relaciones, validación y middleware.

Después incorpora autenticación, autorización, APIs y testing.

Finalmente, estudia colas, caché, eventos e integraciones cuando un proyecto real los necesite.

No intentes aprender Laravel como una colección de comandos: aprende cómo fluye una aplicación desde la solicitud HTTP hasta la lógica, los datos y la respuesta.

Ruta Laravel

Continúa desde los fundamentos correctos

Publicidad
Preguntas frecuentes

Preguntas sobre aprender Laravel desde cero

Puedes seguir algunos tutoriales, pero es recomendable aprender primero PHP. Laravel utiliza funciones, clases, namespaces, interfaces, Composer y otras características del lenguaje constantemente.

Conviene conocer PHP, programación orientada a objetos, Composer, HTTP, SQL y bases de datos. No necesitas dominar todo, pero sí comprender los fundamentos.

Laravel puede parecer complejo si intentas aprender simultáneamente PHP, POO, Composer, SQL, HTTP y el propio framework. Con una base previa, muchos conceptos resultan mucho más claros.

Empieza por routing, controllers y Blade. Después añade migraciones, Eloquent, validación y relaciones. Más adelante incorpora middleware, autenticación, autorización, APIs y testing.

Sí. Eloquent facilita trabajar con bases de datos, pero comprender SQL, relaciones, JOIN, índices y transacciones te permite diseñar mejores consultas y detectar problemas de rendimiento.

Puedes empezar con un gestor de tareas o un CRUD de productos. Después avanza hacia un sistema de reservas, una aplicación multiusuario o una API REST con autenticación y permisos.

No necesitas dominar JavaScript para aprender el backend de Laravel. Sin embargo, JavaScript resulta útil para crear interfaces dinámicas, consumir APIs y avanzar hacia desarrollo web full stack.

Sí. La IA puede ayudarte a explicar código, generar ejercicios, revisar errores y proponer alternativas. Conviene utilizarla como apoyo al aprendizaje y verificar el código y la documentación en lugar de copiar soluciones completas sin comprenderlas.

Publicidad
Aprende construyendo

No intentes aprender todo Laravel antes de crear tu primera aplicación

Aprende una pieza, úsala en un proyecto y después añade la siguiente: rutas, controllers, Blade, Eloquent, validación, permisos, APIs y testing. La comprensión aparece cuando esas piezas comienzan a trabajar juntas.

Volver a la guía de Laravel →
Carrito de compra
Scroll al inicio