Crear modelo laravel

Para crear un modelo o model con laravel hay que utilizar una consola Power Shell, GitBash, etc.

En este caso abriendo el terminal de Visual Studio Code con Ctrl+ñ, y escribir el comando

php artisan make:model Nombremodelo

y así se crea el siguiente fichero:

app\Models\Nombremodelo.php

Índice
  1. Parámetros para crear también otros ficheros como seeders factories o migrations
  2. Asignación masiva al modelo
  3. Tipos de datos frecuentes
  4. Ejecutar migraciones y generación de datos falsos automáticamente
  5. Crear migraciones entre modelos
  6. Tablas polimorficas en laravel

Parámetros para crear también otros ficheros como seeders factories o migrations

A la vez de crear el modelo es muy util crear los ficheros necesarios para implementar o desarrollar la aplicación web.

A través de las convenciones de Laravel se puede conseguir optimizar los recursos y productividad en el desarrollo de aplicaciones.

En este ejemplo se van a crear la migración (m), el factory (f) y el seeder (s).

php artisan make:model Nombremodelo -mfs

y así se crea los siguientes ficheros:

app\Models\Nombremodelo.php
database\factories\NombremodeloFactory.php
database\migrations\2021_08_26_225634_create_nombremodelo_table.php
database\seeders\NombremodeloSeeder.php

De forma breve indicar que es cada palabra mencionada:

  • Migration: sirve para crear la base de datos dinámicamente a través de laravel eloquent. Aquí se define las tablas, campos y relaciones de la base de datos.
  • Factory: sirve para crear datos falsos y aleatorios, para rellenar la base de datos. Se utiliza en el desarrollo para probar el funcionamiento de la aplicación web. La función faker genera el texto. Por ejemplo:
    return [
    'title' => $this->faker->sentence(),
    'content' => $this->faker->text()
    ];
  • Seeders: sirve para rellenar la base de datos con datos generados manualmente o bien con Factory.
    Para ejecutar el relleno de datos, hay que indicar dentro del fichero
    database\seeders\DatabaseSeeder.php
    las sentencias a ejecutar. Por ejemplo, crear 100 registros:
    \App\Models\Nombremodelo::factory(100)->create();

Asignación masiva al modelo

Para poder guardar datos automáticamente, hay que definir en el modelo la asignación masiva, optando for dos formas:

  1. Guardar campos indicados con fillable
    Los campos que se indican por parámentro se guardan y el resto los guarda con valores por defecto.
    protected $fillable = ['title', 'content'];
  2. Excluir los campos indicados con guarded
    Al contrario que fillable, se guardan todos los campos excepto los indicados por parámetro que se guardan por defecto. Es como bloquear los campos indicados para que no se guarden con el modelo.
    protected $guarded = ['id', 'created_ad', 'updated_at', 'status'];

Tipos de datos frecuentes

Hay michos tipos de datos para asingar a las tablas, pero los principales son:

  • Tipo String: Almacena texto hasta 255 caracteres
    $table->string('title');
  • Tipo sentence para una frase corta
    $table->sentence('title');

Ejecutar migraciones y generación de datos falsos automáticamente

Para generar migraciones hay que ejecutar el comando migrate

php artisan migrate

Para generar migraciones eliminando y generando todos los campos de base de datos ejecutar el comando migrate:fress

php artisan migrate:fresh

Para generar migraciones hay que ejecutar regenerando y eliminando todos los datos base de datos, y además generar el contenido a través de los seeders, ejecutar el comando migrate:fress --seed

php artisan migrate:fresh --seed

Crear migraciones entre modelos

Para crear una talba de mucho a muchos, se crea una tabla intermedia, con lo que se puede crear la migración para relacionar dos modelos ya creados.

Por convención de laravel, se comienza la orden de comando por la palabra create, seguido modelo1, seguido de modelo2, y finalizado de la palabra table. Todos separados por guión bajo.

php artisan make:migration create_course_user_table

Dentro de la migración, se crean los campos con sus claves foráneas

$table->unsignedBigInteger('course_id');
$table->unsignedBigInteger('user_id');
$table->foreign('course_id')->references('id')->on('courses')->onDelete('cascade');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');

Tablas polimorficas en laravel

Cuando se va a utilizar un modelo o tabla que contendrá varios tipos de otros modelos o tablas, se utilizan las relaciones polimorficas.

Puedes ver aquí como crear polimorfismo en Laravel.

Espero te sirva de ayuda!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir