0Pricing
PHP Academy · Lección

Modelos y migraciones de Eloquent

Genere modelos y migraciones de base de datos con comandos de Artisan.

Modelos y migraciones de Eloquent es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.

¿Qué es Eloquent?

Eloquent es el ORM ActiveRecord de Laravel. Cada tabla de la base de datos tiene una clase Model correspondiente que representa una fila y proporciona métodos de consulta.

Generación de un modelo

Use Artisan para crear un modelo. Añada -m para generar también un archivo de migración.

$ php artisan make:model Post -m
# Creates:
# app/Models/Post.php
# database/migrations/xxxx_create_posts_table.php

La clase del modelo

Un modelo Eloquent mínimo solo necesita extender Model. Eloquent deduce el nombre de la tabla a partir del nombre de la clase (plural en snake_case).

<?php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    protected $fillable = ["title", "body", "user_id"];
}

Archivo de migración

La migración define el esquema de la tabla. Ejecute php artisan migrate para aplicarlo.

<?php
public function up(): void
{
    Schema::create("posts", function (Blueprint $table) {
        $table->id();
        $table->string("title");
        $table->text("body");
        $table->foreignId("user_id")->constrained()->cascadeOnDelete();
        $table->timestamps();
    });
}

Ejecución de migraciones

Aplique a la base de datos las migraciones pendientes.

$ php artisan migrate
# Rollback:
$ php artisan migrate:rollback
# Fresh (drop all and re-migrate):
$ php artisan migrate:fresh

$fillable frente a $guarded

$fillable incluye en una lista blanca las columnas que pueden usarse en la asignación masiva. $guarded incluye columnas en una lista negra. Nunca establezca $guarded = [] en producción sin analizarlo detenidamente.

<?php
// Whitelist approach (recommended):
protected $fillable = ["title", "body"];

// Blacklist approach:
protected $guarded = ["id", "created_at"];

Conversiones de tipos

La propiedad $casts convierte automáticamente los valores de las columnas a tipos de PHP.

<?php
protected $casts = [
    "is_published" => "boolean",
    "metadata"     => "array",       // JSON column
    "published_at" => "datetime",
];

Campos ocultos y visibles

La propiedad $hidden excluye columnas de la serialización a JSON o a arreglos; resulta útil para contraseñas y tokens.

<?php
protected $hidden = ["password", "remember_token"];

Nombre de tabla personalizado

Reemplace el nombre de tabla predeterminado mediante la propiedad $table.

<?php
protected $table = "blog_posts"; // instead of "posts"

Eliminaciones lógicas

Añada el trait SoftDeletes y una columna deleted_at. Los registros no se eliminan realmente: se marcan con una marca de tiempo y se excluyen de las consultas normales.

<?php
use Illuminate\Database\Eloquent\SoftDeletes;

class Post extends Model {
    use SoftDeletes;
}

Marcas de tiempo

De forma predeterminada, Eloquent administra las columnas created_at y updated_at. Establezca $timestamps = false para desactivarlas.

Resumen

Los modelos de Eloquent se asignan a tablas de la base de datos. Use Artisan para generar modelos y migraciones conjuntamente. Defina $fillable para proteger la asignación masiva. Use $casts para convertir tipos automáticamente.

Comprobación rápida

¿Qué opción de Artisan genera una migración junto con un modelo?

Preguntas frecuentes

¿La lección «Modelos y migraciones de Eloquent» es gratis?

Sí — el texto completo de «Modelos y migraciones de Eloquent» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Modelos y migraciones de Eloquent»?

Genere modelos y migraciones de base de datos con comandos de Artisan. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar PHP Academy?

No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Modelos y migraciones de Eloquent»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de PHP Academy?

Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Modelos y migraciones de Eloquent
  2. CRUD con Eloquent
  3. Relaciones de Eloquent
  4. Carga anticipada y ámbitos de consulta
← Volver a PHP Academy