Saltar al contenido

Tiempo estimado de actualización: 5 minutos

Laravel 12 fue liberado el 24 de febrero de 2025 y trae varias mejoras sin cambios importantes que rompan la compatibilidad. Esta guía te mostrará paso a paso cómo actualizar tus proyectos existentes de Laravel 11 a la nueva versión 12.

Si prefieres automatizar el proceso, puedes ver cómo actualizar proyectos con Laravel Shift, donde muestro en vídeo el proceso completo.

Actualizando dependencias

Paso 1: Actualizar requisitos de Composer

El primer paso es actualizar las dependencias en tu archivo composer.json:

Paso 2: Actualizar Carbon

Laravel 12 ya no es compatible con Carbon 2.x. Todas las aplicaciones ahora requieren Carbon 3.x, que se instalará automáticamente con la actualización del framework.

Paso 3: Actualizar el instalador de Laravel

Si utilizas la herramienta CLI del instalador de Laravel para crear nuevas aplicaciones, deberías actualizar tu instalación para que sea compatible con Laravel 12.x y los nuevos kits de inicio. Puedes hacerlo con:

O si instalaste PHP y Laravel vía php.new, simplemente vuelve a ejecutar los comandos de instalación para tu sistema operativo:

Linux:

macOS:

Windows PowerShell:

Si estás usando Laravel Herd, actualiza Herd a la última versión para obtener el instalador actualizado.

Cambios de medio impacto

Modelos y UUIDv7

Si estás utilizando el trait HasUuids en tus modelos, ahora este trait devuelve UUIDs compatibles con la versión 7 del estándar UUID (UUIDs ordenados).

Si deseas seguir utilizando strings UUIDv4 ordenados para los IDs de tu modelo, ahora deberías usar el trait HasVersion4Uuids:

El trait HasVersion7Uuids ha sido eliminado. Si estabas usando este trait anteriormente, deberías usar el trait HasUuids, que ahora proporciona el mismo comportamiento.

Cambios de bajo impacto

Validación de imágenes y SVGs

La regla de validación image ya no permite imágenes SVG por defecto. Si deseas permitir SVGs cuando uses la regla image, debes permitirlos explícitamente:

Consultas multi-esquema en base de datos

Los métodos Schema::getTables(), Schema::getViews() y Schema::getTypes() ahora incluyen los resultados de todos los esquemas por defecto. Puedes pasar el argumento schema para recuperar el resultado solo para el esquema dado:

El método Schema::getTableListing() ahora devuelve nombres de tabla calificados por esquema de forma predeterminada:

Resultados de operaciones concurrentes

Cuando invoques el método Concurrency::run con un array asociativo, los resultados de las operaciones concurrentes ahora se devuelven con sus claves asociadas:

Fusión de arrays anidados en requests

El método $request->mergeIfMissing() ahora permite fusionar datos de arrays anidados utilizando la notación de "punto". Si antes dependías de este método para crear una clave de array de nivel superior que contuviera la versión de la clave con notación de "punto", es posible que debas ajustar tu aplicación para tener en cuenta este nuevo comportamiento:

Explorar todas las novedades de Laravel 12

Para aprovechar al máximo Laravel 12, te invito a explorar nuestras guías relacionadas:

Conclusión

La actualización a Laravel 12 es rápida y sencilla, con pocos cambios importantes que rompan la compatibilidad. Si sigues los pasos de esta guía, podrás disfrutar de todas las nuevas características y mejoras de rendimiento que ofrece esta versión en cuestión de minutos.

school Curso completo

Curso Laravel 12
Completo 2026

El único curso 100% actualizado que incluye Laravel 12, Livewire 3, Vue 3, React 19 e Inertia 2. Aprende con proyectos reales y las últimas funcionalidades.

access_time 8 horas de contenido
layers 4 tecnologías en 1
update 100% actualizado
code Proyectos prácticos
Ver Curso Laravel 12 arrow_forward

star Incluido en cualquier suscripción

Rutas de aprendizaje