PHP

Añadiendo Modelos y Migraciones en devlog-ist/landing

Estamos trabajando en el proyecto devlog-ist/landing, cuyo objetivo es crear una landing page efectiva. En esta ocasión, he estado involucrado en la adición de un nuevo modelo y su migración correspondiente.

El Problema

Necesitábamos una forma de representar y almacenar la información de los candidatos a pipeline. Esto implicaba crear una estructura de datos que pudiera ser persistida en la base de datos y utilizada por la aplicación.

La Solución

La solución fue crear un modelo llamado PipelineCandidate junto con su migración y factory. El modelo representa la estructura de datos, la migración define la estructura de la tabla en la base de datos, y el factory proporciona una forma de generar datos de prueba.

Primero, definimos el modelo PipelineCandidate:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class PipelineCandidate extends Model
{
    protected $fillable = [
        'name',
        'email',
        'phone',
        'resume_url',
    ];
}

Luego, creamos la migración correspondiente para definir la tabla en la base de datos:

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreatePipelineCandidatesTable extends Migration
{
    public function up()
    {
        Schema::create('pipeline_candidates', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email');
            $table->string('phone')->nullable();
            $table->string('resume_url')->nullable();
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('pipeline_candidates');
    }
}

Finalmente, creamos un factory para generar datos de prueba:

namespace Database\Factories;

use App\Models\PipelineCandidate;
use Illuminate\Database\Eloquent\Factories\Factory;

class PipelineCandidateFactory extends Factory
{
    protected $model = PipelineCandidate::class;

    public function definition()
    {
        return [
            'name' => $this->faker->name,
            'email' => $this->faker->unique()->safeEmail,
            'phone' => $this->faker->phoneNumber,
            'resume_url' => $this->faker->url,
        ];
    }
}

Lecciones Aprendidas

La creación de modelos, migraciones y factories es un paso fundamental en el desarrollo de aplicaciones web. Permite definir la estructura de datos, persistirla en la base de datos y generar datos de prueba de manera eficiente. Es crucial mantener estos componentes sincronizados y actualizados para asegurar la integridad de la aplicación.

Añadiendo Modelos y Migraciones en devlog-ist/landing
Gerardo Ruiz

Gerardo Ruiz

Author

Share: