Laravel Jetstream
Laravel Jetstream es un kit de inicio de aplicaciones (application starter kit) oficial y gratuito para Laravel. Está diseñado para proporcionar un punto de partida robusto y con funcionalidades avanzadas para tus nuevos proyectos.
Piénsalo como una base mucho más completa que el típico sistema de autenticación. No solo te da el login y registro, sino que incorpora de serie características que normalmente tendrías que construir desde cero para aplicaciones modernas y complejas.
🚀 Características principales de Jetstream
Jetstream viene con una suite de funcionalidades lista para usar:
Autenticación completa: Inicio de sesión, registro, restablecimiento de contraseña y verificación de correo electrónico.
Autenticación de Dos Factores (2FA): Añade una capa extra de seguridad a las cuentas de usuario.
Gestión de Sesiones: Permite a los usuarios ver y cerrar sesiones activas en otros dispositivos.
Gestión de Equipos: Funcionalidad opcional para crear equipos, invitar miembros y asignar roles y permisos. Es ideal para aplicaciones SaaS.
Tokens API: Integración con Laravel Sanctum para generar y gestionar tokens de acceso a una API.
Gestión de Perfil: Incluye un flujo completo para la actualización de la foto de perfil y la eliminación de la cuenta.
🎨 Stacks disponibles: ¿Livewire o Inertia?
Una de las grandes ventajas de Jetstream es que te permite elegir la tecnología con la que quieres construir tu interfaz de usuario:
Livewire + Blade: Ideal si quieres construir interfaces dinámicas y reactivas usando principalmente PHP y las plantillas Blade de Laravel, sin necesidad de ser un experto en JavaScript.
Inertia.js + Vue 3: Perfecto si te sientes cómodo con Vue.js y quieres construir una Single Page Application (SPA) con la fluidez de una aplicación moderna, pero manteniendo el enrutamiento y la lógica en el servidor con Laravel. Esta es la opción que usarías junto con Inertia, como vimos en el ejemplo anterior.
🆚 Jetstream vs. Breeze: ¿Cuál elegir?
Para entender mejor Jetstream, es útil compararlo con Laravel Breeze, el otro kit de inicio oficial. La principal diferencia es su enfoque:
En resumen:
Usa Breeze si necesitas una base de autenticación rápida, simple y con total control, o si estás empezando a aprender Laravel.
Usa Jetstream si tu proyecto requiere funcionalidades empresariales como 2FA, gestión de equipos o una API desde el principio. Es perfecto para aplicaciones SaaS o proyectos grandes.
En definitiva, Laravel Jetstream es una herramienta excepcional para saltar directamente a la programación de las partes complejas de tu aplicación, en lugar de perder tiempo construyendo y probando sistemas de autenticación y gestión de usuarios desde cero
¿Por qué aparece SQLite por defecto?
Laravel, al crear un proyecto nuevo, no configura automáticamente una base de datos MySQL o PostgreSQL. El archivo .env que viene por defecto tiene estas líneas:
DB_CONNECTION=sqlite # DB_HOST=127.0.0.1 # DB_PORT=3306 # DB_DATABASE=laravel # DB_USERNAME=root # DB_PASSWORD=
Por tanto, si no has modificado esas variables antes de instalar Jetstream, Laravel asume que quieres usar SQLite (un archivo local .sqlite en la carpeta database/).
¿Qué significa la pregunta que te hace?
“New database migrations were added. Would you like to re-run your migrations? (yes/no)”
Jetstream ha añadido nuevas migraciones (tablas de usuarios, sesiones, equipos, etc.) y te pregunta si quieres ejecutarlas ahora mismo.
Si respondes
yes→ las ejecutará con la conexión de base de datos que tengas configurada en ese momento.Si respondes
no→ no las ejecutará, y luego tendrás que hacerlo manualmente conphp artisan migrate.
¿Qué deberías hacer?
Depende de qué base de datos quieras usar en tu proyecto:
Opción A) Quieres usar MySQL / MariaDB / PostgreSQL (recomendado para producción)
Cancela la instalación de Jetstream (presiona
Ctrl+Csi está esperando tu respuesta).Configura tu base de datos en el archivo
.env. Por ejemplo, para MySQL:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=inertia-example # el nombre que le diste DB_USERNAME=root DB_PASSWORD=tu_contraseña
Crea la base de datos (si no la tienes) con tu gestor favorito o desde la terminal:
mysql -u root -p -e "CREATE DATABASE inertia-example;"
Vuelve a ejecutar el comando de instalación de Jetstream:
php artisan jetstream:install inertia
Esta vez, al llegar a la pregunta, ya tendrás MySQL configurado, y la migración se ejecutará sobre tu base de datos MySQL. Responderás
yessin problemas.
Opción B) Quieres usar SQLite (para desarrollo rápido)
Si no te importa usar SQLite, simplemente:
Asegúrate de que el archivo
database/database.sqliteexista (si no, créalo vacío).Responde
yesa la pregunta y Jetstream ejecutará las migraciones en ese archivo.
¿Qué pasa si respondo "no" y luego quiero migrar?
Si respondiste no, no pasa nada. Solo tendrás que ejecutar las migraciones manualmente después de configurar tu base de datos:
php artisan migrate
Eso creará todas las tablas necesarias en la base de datos que tengas configurada en ese momento.
Resumen rápido
| Tu situación | Acción recomendada |
|---|---|
Ya configuraste MySQL/PostgreSQL en .env | Responde yes sin miedo. |
No has tocado .env y quieres usar MySQL | Cancela, configura .env, crea la BD, y vuelve a instalar Jetstream. |
| Quieres usar SQLite | Responde yes y listo (o no y luego php artisan migrate). |
Consejo final
En el tutorial que te compartí, yo asumo que usas MySQL y te indico que crees la base de datos y configures .env antes de instalar Jetstream. Si saltaste ese paso, ahora ya sabes cómo corregirlo.
Si ya respondiste yes y las migraciones se ejecutaron en SQLite, pero quieres cambiarlo a MySQL, no te preocupes: puedes hacer php artisan migrate:refresh después de cambiar .env para recrear las tablas en el nuevo motor.
¡Ánimo, que ya casi lo tienes! Si te surge otra duda, aquí estoy. 🚀
Solución paso a paso
1. Crea el controlador (si no existe)
php artisan make:controller ExampleController
Esto generará el archivo en app/Http/Controllers/ExampleController.php con el namespace App\Http\Controllers.
2. Verifica que tu ruta esté bien escrita
En routes/web.php, asegúrate de tener:
use App\Http\Controllers\ExampleController; Route::get('/example', [ExampleController::class, 'index'])->name('example');
otra recomendacion ::El error es claro: no has importado la clase Inertia en tu controlador. Laravel no sabe qué es Inertia::render() porque no has declarado el use correspondiente.
✅ Solución
Abre tu controlador app/Http/Controllers/ExampleController.php y agrega la importación al inicio:
<?php namespace App\Http\Controllers; use Inertia\Inertia; // <--- ¡Esta línea es obligatoria! class ExampleController extends Controller { public function index() { return Inertia::render('ExampleInertia'); } }
vc
Verifica que el componente Vue exista
Si después de agregar el use aparece otro error similar a "Page not found" o "Unable to resolve component", significa que no has creado el archivo resources/js/Pages/ExampleInertia.vue. Créalo con:
<template> <h1>Hello World desde Inertia</h1> </template> <script setup> // Aquí puede ir lógica si la necesitas </script>
🔄 Recarga el servidor
Si usas php artisan serve, reinícialo o espera a que detecte el cambio (si APP_DEBUG=true suele refrescar automáticamente).
📦 Asegura que el paquete de Inertia esté instalado
Si por algún motivo no has instalado el paquete de Inertia para Laravel, ejecuta:
composer require inertiajs/inertia-laravelPero si instalaste Jetstream con Inertia, ya debería estar incluido.
¡Con eso debería funcionar! 🚀 El error Class "App\Http\Controllers\Inertia" not found desaparecerá y verás tu "Hello World".
Comentarios
Publicar un comentario