Header Ads Widget

Ticker

6/recent/ticker-posts

Configurar una base de datos con inicialización

 

Al construir nuestro foro, lo primero que necesitaremos es una base de datos para contener todos nuestros hilos, usuarios, respuestas, etc. En una lección anterior, nos tomamos el tiempo para configurar una buena instalación de PhpMyAdmin usando homestead para que pudiéramos crear fácilmente nuevas bases de datos. Además, podemos eliminar bases de datos o editar datos directamente en la GUI. Podemos crear una nueva base de datos llamada forumio para empezar.

crear una nueva base de datos de Forumio


Hacer que Laravel se conecte a la base de datos

Por supuesto, necesitamos actualizar el archivo .env, así que sigamos adelante y hagámoslo de inmediato.

DB_CONNECTION = mysql
DB_HOST = 127.0.0.1
DB_PORT = 3306
DB_DATABASE = forumio
DB_USERNAME = finca
DB_PASSWORD = secreto

¿Qué queremos?

Al comenzar cualquier proyecto, se debe dedicar una cantidad considerable de tiempo a pensar en lo que necesitará para varios componentes de su aplicación. Para comenzar a construir este foro, necesitaremos algunas ideas principales. En cierto sentido, su pensamiento sobre sus modelos y cómo se representarán. Entonces para esto tendremos lo siguiente.

  • Hilo
  • Respuesta
  • Usuario
  • Un hilo es creado por un usuario
  • Una respuesta pertenece a un hilo y pertenece a un usuario

Haz tu primer modelo

Ahora podemos empezar a construir. Ponte tus gafas de seguridad. Lo primero que haremos será realizar un modelo llamado Thread. Agregaremos las banderas para crear también un archivo de migración y un controlador ingenioso. Hacemos esto así:

vagrant @ homestead: ~ / Code / forumio $ php artisan make: model Thread -mr
Modelo creado con éxito.
Migración creada: 2017_12_05_174156_create_threads_table
Controlador creado con éxito.
vagabundo @ homestead: ~ / Código / forumio $

Este paso creó 3 archivos para nosotros. Ahora tenemos un modelo, un controlador y un archivo de migración.
controlador de modelo y migración creada


Configurar el archivo de migración

Sigamos adelante y editemos el archivo de migración para que cree los campos que necesitamos para almacenar datos en nuestro foro.

En el fragmento anterior, agregamos solo algunas cosas al texto estándar. Un hilo puede pertenecer a un usuario, por lo que agregamos el valor entero de user_id para admitirlo. Un hilo también tendrá un título y un cuerpo donde usamos una cadena y un tipo de datos de texto para contener esta información.

Con estas piezas en su lugar, ejecutemos php artisan migrate ahora.

vagrant @ homestead: ~ / Code / forumio $ php migrar artesanal
La tabla de migración se creó correctamente.
Migrando: 2014_10_12_000000_create_users_table
Migrado: 2014_10_12_000000_create_users_table
Migrando: 2014_10_12_100000_create_password_resets_table
Migrado: 2014_10_12_100000_create_password_resets_table
Migrando: 2017_12_05_174156_create_threads_table
Migrado: 2017_12_05_174156_create_threads_table

Hacer el modelo de respuesta

También necesitamos hacer un modelo para Responder con una migración y un controlador.

vagrant @ homestead: ~ / Code / forumio $ php artisan make: model Responder -mc
Modelo creado con éxito.
Migración creada: 2017_12_05_185134_create_replies_table
Controlador creado con éxito.

Actualicemos ahora la migración de la tabla de respuestas aquí. Entonces debemos preguntarnos en qué consistirá una respuesta. Una respuesta pertenecerá a un hilo y también pertenecerá a un usuario. Como tal, agregamos un thread_id y un user_id a esta tabla. También agregamos un campo de texto para el cuerpo de la respuesta. Esas ediciones se ven aquí.

Continúe y ejecute esa migración una vez más.

vagrant @ homestead: ~ / Code / forumio $ php migrar artesanal
Migrando: 2017_12_05_185134_create_replies_table
Migrado: 2017_12_05_185134_create_replies_table
vagabundo @ homestead: ~ / Código / forumio $

Creación de una nueva fábrica de modelos

Para poblar la base de datos con algunos datos falsos con los que trabajar, podemos hacer uso de una Model Factory como esta:

Lo que hacemos en el fragmento anterior es agregar una fábrica de subprocesos a la fábrica de usuarios estándar que proporciona Laravel. Ahora, en la tabla de hilos, sabemos que necesita un user_id, un título y un cuerpo. Por lo tanto, completamos esas opciones en esta fábrica de subprocesos como vemos. Con esto en su lugar, podemos usar Tinker para ejecutar el comando para completar la base de datos con algunas entradas.

vagabundo @ homestead: ~ / Code / forumio $ php artisan tinker
Psy Shell v0.8.15 (PHP 7.1.2-3 + deb.sury.org ~ xenial + 1 â cli) por Justin Hileman
>>> fábrica ('App \ Thread', 50) -> crear ();

Una vez que se ejecuta este comando, ahora tenemos 50 subprocesos aleatorios y también 50 usuarios aleatorios sembrados en la base de datos.


50 hilos aleatorios

50 hilos aleatorios


50 usuarios aleatorios

50 usuarios aleatorios

¡Ups! Todavía necesitamos agregar respuestas a la base de datos y lo olvidamos. No se preocupe, siga adelante y ejecute php artisan migrate: refresh.

vagrant @ homestead: ~ / Code / forumio $ php artisan migrate: actualizar
Revertir: 2017_12_05_185134_create_replies_table
Revertido: 2017_12_05_185134_create_replies_table
Revertir: 2017_12_05_174156_create_threads_table
Revertido: 2017_12_05_174156_create_threads_table
Revirtiendo: 2014_10_12_100000_create_password_resets_table
Revertido: 2014_10_12_100000_create_password_resets_table
Revertir: 2014_10_12_000000_create_users_table
Revertido: 2014_10_12_000000_create_users_table
Migrando: 2014_10_12_000000_create_users_table
Migrado: 2014_10_12_000000_create_users_table
Migrando: 2014_10_12_100000_create_password_resets_table
Migrado: 2014_10_12_100000_create_password_resets_table
Migrando: 2017_12_05_174156_create_threads_table
Migrado: 2017_12_05_174156_create_threads_table
Migrando: 2017_12_05_185134_create_replies_table
Migrado: 2017_12_05_185134_create_replies_table

Una respuesta pertenece a un usuario pero también pertenece a un hilo, por lo que podemos configurar esta fábrica de la siguiente manera.

Con nuestra fábrica de modelos corregida, sigamos adelante y completemos la base de datos a través de Tinker una vez más.

vagabundo @ homestead: ~ / Code / forumio $ php artisan tinker
Psy Shell v0.8.15 (PHP 7.1.2-3 + deb.sury.org ~ xenial + 1 â cli) por Justin Hileman
>>> $ hilos = fábrica ('Aplicación \ hilo', 50) -> crear ();
>>> $ hilos-> cada (función ($ hilo) {fábrica ('Aplicación \ Responder', 10) -> crear (['hilo_id' => $ hilo-> id]);});

Esta vez, creamos nuestros 50 hilos y usuarios como de costumbre, pero almacenamos el resultado en una variable. A partir de ahí, podemos filtrar todos los hilos y crear 10 respuestas para cada hilo. Para cada hilo, crearemos 10 respuestas diferentes y asociaremos esa respuesta con el hilo actual. Nuestras tablas de subprocesos y usuarios ahora están pobladas, pero ahora también tenemos la tabla de respuestas poblada, así como lo vemos aquí ahora:
responder datos falsos rellenados


Configuración de una base de datos con resumen de inicialización

Este fue un pequeño tutorial que nos ayudó a configurar los conceptos básicos para nuestro proyecto de foro. Creamos algunos modelos, configuramos nuestros archivos de migración, creamos algunas fábricas de modelos nuevos y finalmente llenamos la base de datos con los datos falsos que necesitaremos para seguir construyendo. ¡Increíble!


Publicar un comentario

0 Comentarios