Inicio » Blog »

7 abril, 2025

Cómo Crear un CRUD en Laravel 12: Guía Completa para Principiantes

#Laravel

Para programar un CRUD debemos crear un controlador con los métodos necesarios para gestionar los datos de una Tabla implementado las vistas y rutas.

Cómo Crear un CRUD en Laravel 12: Guía Completa para Principiantes

Suscríbete a nuestro canal en Youtube

Suscríbirse

Vamos a hacer un CRUD en Laravel 12, y lo haremos creando una lista para gestionar nuestras mascotas favoritas. Si eres nuevo en Laravel y te sientes un poco perdido, no te preocupes: te lo explicaré todo paso a paso, como si estuviéramos cuidando un perrito juntos. ¿Listo para empezar esta aventura peluda?

¿Qué es un CRUD y por qué Laravel 12?

Un CRUD es como un cuaderno mágico para organizar datos: Crear (añadir algo), Leer (verlo), Actualizar (cambiarlo) y Eliminar (borrarlo). Vamos a usarlo para llevar un registro de nuestras mascotas: sus nombres, tipos (perro, gato, etc.) y más. Laravel 12 es la última versión de este framework PHP, y es súper fácil de usar gracias a sus herramientas mágicas.

Paso 1: Prepara tu casita para mascotas (instalación)

Primero, asegúrate de tener:

  • PHP 8.2 o superior: Es como la comida básica para Laravel.
  • Composer: Una herramienta para instalar cosas (composer --version para verificar).
  • Laravel 12: Crea un proyecto nuevo con:

    bash

    composer create-project laravel/laravel mis-mascotas
    Entra al proyecto:
cd mis-mascotas

Configura tu base de datos en .env. Para algo simple, usa SQLite:

  1. Crea un archivo database.sqlite en la carpeta database.
  2. Edita .env:

    text

    DB_CONNECTION=sqlite 
    DB_DATABASE=/ruta/absoluta/a/tu/proyecto/database/database.sqlite

Paso 2: Crea el modelo de las mascotas

Vamos a hacer un modelo Pet para nuestras mascotas:

bash

php artisan make:model Pet -m

Esto genera:

  • Un modelo en app/Models/Pet.php.
  • Una migración en database/migrations.

Abre la migración y define los datos de las mascotas:

php

public function up() {
    Schema::create('pets', function (Blueprint $table) {
        $table->id(); // ID único
        $table->string('name'); // Nombre de la mascota
        $table->string('type'); // Tipo: perro, gato, etc.
        $table->timestamps(); // Fechas de creación y actualización
    });
}

Ejecuta la migración:

bash

php artisan migrate

¡Listo! Ahora tienes una tabla pets en tu base de datos.

Paso 3: Configura el modelo

En app/Models/Pet.php, indica qué campos puede llenar:

php

class Pet extends Model {
    protected $fillable = ['name', 'type'];
}

Paso 4: Crea el controlador

Genera un controlador con recursos:

bash

php artisan make:controller PetController --resource

Esto crea PetController.php con funciones para el CRUD: index, create, store, show, edit, update y destroy.

Paso 5: Define las rutas

En routes/web.php, añade:

php

Route::resource('pets', PetController::class);

Esto conecta URLs como /pets o /pets/{id} a las funciones del controlador.

Paso 6: Construye el CRUD en el controlador

Abre app/Http/Controllers/PetController.php y programa cada parte del CRUD:

Leer (Read) - Ver todas las mascotas

php

public function index() {
    $pets = Pet::all(); // Obtiene todas las mascotas
    return view('pets.index', compact('pets')); // Muestra la vista
}

Esto lista todas las mascotas en una página.

Crear (Create) - Añadir una mascota

  • Mostrar formulario:

php

public function create() {
    return view('pets.create'); // Vista con formulario
}
  • Guardar la mascota:

php

public function store(Request $request) {
    Pet::create($request->all()); // Crea la mascota con los datos del formulario
    return redirect()->route('pets.index')->with('success', '¡Mascota añadida!');
}

Actualizar (Update) - Editar una mascota

  • Mostrar formulario de edición:

php

public function edit($id) {
    $pet = Pet::findOrFail($id); // Busca la mascota por ID
    return view('pets.edit', compact('pet')); // Muestra el formulario con datos
}
  • Guardar cambios:

php

public function update(Request $request, $id) {
    $pet = Pet::findOrFail($id); // Encuentra la mascota
    $pet->update($request->all()); // Actualiza los datos
    return redirect()->route('pets.index')->with('success', '¡Mascota actualizada!');
}​​​​​​​

Eliminar (Delete) - Borrar una mascota

php

public function destroy($id) {
    $pet = Pet::findOrFail($id); // Encuentra la mascota
    $pet->delete(); // La elimina
    return redirect()->route('pets.index')->with('success', '¡Mascota eliminada!');
}​​​​​​​

Paso 7: Crea las vistas

Crea una carpeta resources/views/pets y añade estos archivos:

index.blade.php (Leer - Lista de mascotas)

php

<!DOCTYPE html>
<html>
<head>
    <title>Mis Mascotas</title>
</head>
<body>
    <h1>Lista de Mascotas</h1>
    @if(session('success'))
        <p style="color: green;">{{ session('success') }}</p>
    @endif
    <a href="{{ route('pets.create') }}">Añadir Mascota</a>
    <ul>
        @foreach($pets as $pet)
            <li>
                {{ $pet->name }} ({{ $pet->type }})
                <a href="{{ route('pets.edit', $pet->id) }}">Editar</a>
                <form action="{{ route('pets.destroy', $pet->id) }}" method="POST" style="display:inline;">
                    @csrf
                    @method('DELETE')
                    <button type="submit">Eliminar</button>
                </form>
            </li>
        @endforeach
    </ul>
</body>
</html>​​​​​​​

create.blade.php (Crear - Formulario nuevo)

php

<!DOCTYPE html>
<html>
<head>
    <title>Añadir Mascota</title>
</head>
<body>
    <h1>Añadir Nueva Mascota</h1>
    <form action="{{ route('pets.store') }}" method="POST">
        @csrf
        <input type="text" name="name" placeholder="Nombre" required>
        <input type="text" name="type" placeholder="Tipo (perro, gato...)" required>
        <button type="submit">Guardar</button>
    </form>
    <a href="{{ route('pets.index') }}">Volver</a>
</body>
</html>​​​​​​​

edit.blade.php (Actualizar - Formulario de edición)

php

<!DOCTYPE html>
<html>
<head>
    <title>Editar Mascota</title>
</head>
<body>
    <h1>Editar {{ $pet->name }}</h1>
    <form action="{{ route('pets.update', $pet->id) }}" method="POST">
        @csrf
        @method('PUT')
        <input type="text" name="name" value="{{ $pet->name }}" required>
        <input type="text" name="type" value="{{ $pet->type }}" required>
        <button type="submit">Actualizar</button>
    </form>
    <a href="{{ route('pets.index') }}">Volver</a>
</body>
</html>

Paso 8: ¡Prueba tu refugio virtual!

Inicia el servidor:

bash

php artisan serve

Ve a http://localhost:8000/pets. Podrás:

  • Ver la lista de mascotas (Leer).
  • Añadir una mascota nueva como "Luna - Gato" (Crear).
  • Editarla para cambiar su tipo a "Perro" (Actualizar).
  • Eliminarla si ya no está contigo (Eliminar).

Leido 3984 veces | 2 usuarios

Descarga del código fuente Laravel de Cómo Crear un CRUD en Laravel 12: Guía Completa para Principiantes

Accede al código fuente esencial de nuestra aplicación en formato ZIP ó TXT. Ideal para desarrolladores que desean personalizar o integrar nuestra solución.

Opciones de descarga

  • Usuarios Registrados: Inicia sesión para descarga inmediata.
  • Nuevos Usuarios: Regístrate y descarga.

5 descargas

Para descargar el código inicia sesión o crea una cuenta

Iniciar Sesión

Compartir link del tutorial con tus amigos

Cuestionario de Implementación de un CRUD en Laravel

Amplia tus conocimientos sobre la implementación de un CRUD en Laravel 12

1. ¿Qué significa la sigla CRUD en el contexto de Laravel?

2. ¿Qué comando se utiliza para crear un nuevo proyecto en Laravel 12?

3. ¿Qué archivo define las rutas web en Laravel?

4. ¿Qué método HTTP se utiliza comúnmente para mostrar datos en una vista (Read)?

5. ¿Qué comando de Artisan genera un controlador con métodos CRUD predefinidos?

6. ¿Qué estructura de base de datos se utiliza comúnmente para almacenar datos en un CRUD?

7. ¿Qué es Eloquent ORM en Laravel?

8. ¿Qué comando se utiliza para crear una migración en Laravel?

9. ¿Qué función cumple el método 'store' en un controlador CRUD?

10. ¿Qué archivo Blade se utiliza comúnmente para mostrar los datos en una tabla?

11. ¿Qué método HTTP se utiliza para eliminar un registro en un CRUD?

12. ¿Qué función tiene el método 'update' en un controlador CRUD?

13. ¿Qué es un Seeder en Laravel?

14. ¿Qué comando ejecuta todas las migraciones pendientes en Laravel?

15. ¿Qué es un Request personalizado en Laravel?


Curso de Laravel básico

USD 0.00

Descarga del código fuente

Curso de Laravel básico
Laravel Página Web Administrable

USD 37.00

Descarga del código fuente

Laravel Página Web Administrable

Codea Applications

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú