📤 Enviar y recibir datos en vistas Blade
En Laravel, las vistas Blade no solo sirven para mostrar contenido estático, sino que también permiten **enviar y recibir datos dinámicos** entre el controlador y la vista. Esto es clave para crear formularios, recibir información del usuario y procesarla en el backend.
📩 1️⃣ Enviar datos desde el controlador a la vista
Para enviar datos, usamos el método view() pasando un arreglo o la función compact():
// app/Http/Controllers/FormularioController.php
public function mostrarFormulario() {
$mensaje = "Completa el siguiente formulario para enviarnos tus datos.";
return view('formulario', compact('mensaje'));
}
Y en la vista resources/views/formulario.blade.php podemos mostrar esa variable fácilmente:
{{ $mensaje }}
📝 2️⃣ Crear un formulario en Blade
Laravel facilita el manejo de formularios usando HTML puro o con la clase Request.
Aquí tienes un ejemplo básico con un formulario Blade:
Formulario en Laravel
Formulario de contacto
El uso de @csrf genera un token único que protege tu formulario de ataques CSRF (Cross-Site Request Forgery).
⚙️ 3️⃣ Recibir datos en el controlador
Cuando el usuario envía el formulario, los datos llegan al método del controlador que maneja la petición.
Para capturarlos, Laravel usa la clase Request:
// app/Http/Controllers/FormularioController.php
use Illuminate\Http\Request;
public function procesarFormulario(Request $request) {
$nombre = $request->input('nombre');
$correo = $request->input('correo');
return view('respuesta', compact('nombre', 'correo'));
}
En este ejemplo, los datos del formulario son recibidos, procesados y enviados nuevamente a una vista llamada respuesta.blade.php.
📬 4️⃣ Mostrar los datos recibidos en la vista
Finalmente, en la vista resources/views/respuesta.blade.php podemos mostrar la información enviada:
Datos Recibidos
Datos del formulario
Nombre: {{ $nombre }}
Correo: {{ $correo }}
🚦 5️⃣ Definir las rutas del formulario
Para que todo funcione correctamente, debemos definir las rutas en routes/web.php:
// routes/web.php
use App\Http\Controllers\FormularioController;
Route::get('/formulario', [FormularioController::class, 'mostrarFormulario'])->name('formulario.mostrar');
Route::post('/formulario', [FormularioController::class, 'procesarFormulario'])->name('procesar.formulario');
💡 Recuerda usar los métodos correctos (GET para mostrar y POST para procesar).
✅ Conclusión
- 📤 Los datos se envían desde los controladores a las vistas con
view(). - 🧾 Los formularios en Blade usan
@csrfpara proteger las peticiones. - 📥 Los datos se reciben en el controlador con la clase
Request. - 🛣️ Las rutas se definen en
routes/web.phpusando los métodosGETyPOST.
En la siguiente lección veremos cómo trabajar con migraciones de base de datos en Laravel, para crear y modificar tablas fácilmente desde Artisan.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias