0% encontró este documento útil (0 votos)
61 vistas35 páginas

Guía Completa de Laravel: Proyectos y Migraciones

Este documento describe los pasos para configurar las relaciones entre modelos en un proyecto Laravel. Explica cómo crear modelos, tablas de base de datos y migraciones para configurar relaciones uno a uno, uno a muchos y muchos a muchos. También cubre la creación de factories, seeders y el uso de la consola Artisan para administrar las migraciones y datos de prueba.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
61 vistas35 páginas

Guía Completa de Laravel: Proyectos y Migraciones

Este documento describe los pasos para configurar las relaciones entre modelos en un proyecto Laravel. Explica cómo crear modelos, tablas de base de datos y migraciones para configurar relaciones uno a uno, uno a muchos y muchos a muchos. También cubre la creación de factories, seeders y el uso de la consola Artisan para administrar las migraciones y datos de prueba.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Indice

Contenido
GLOSARIO ............................................................................................................................................ 3
CREACIÓN DE PROYECTO LARAVEL ..................................................................................................... 4
BARRA DE CONSULTAS .................................................................................................................... 5
CONFIGURACIÓN BÁSICA ................................................................................................................ 7
MODELOS ............................................................................................................................................ 8
RELACIONES ........................................................................................................................................ 9
MIGRACIONES ................................................................................................................................... 11
TABLAS RELACIONADAS ................................................................................................................ 19
MODELOS .......................................................................................................................................... 19
CONFIGURACIÓN DE TABLAS ............................................................................................................ 20
CREACIÓN DE FACTORIES .................................................................................................................. 26
DATABASE SEEDER ........................................................................................................................ 30
CONCLUSIÓN ..................................................................................................................................... 35
GLOSARIO
Factory: Una software factory, en palabras simples, es como una línea de montaje de ideas y
tecnología, diseñada para crear programas y aplicaciones que ayudan al funcionamiento de una
compañía.

Seeder: Los seeders te permiten definir datos de prueba en código y ejecutarlos de manera
automatizada, lo que facilita el proceso de llenado de datos en la base de datos. En este capítulo,
te enseñaremos cómo crear y ejecutar seeders en Laravel, cómo definir datos de prueba y cómo
utilizar las relaciones Eloquent para crear datos de prueba relacionados.

Migrate: Se refiere a la transferencia de datos entre diferentes tipos de formatos de archivos,


esquemas de bases de datos y sistemas de almacenamiento. Sin embargo, la "transferencia" de
datos no es el único aspecto de la metodología.

Artisan: Es la interfaz de línea de comandos incluida con Laravel para emitir ciertos comandos en el
proyecto. Muchos de estos comandos son útiles en las distintas fases del ciclo de desarrollo de una
aplicación Laravel, otros también pueden usarse durante la fase de setup o actualización de la
aplicación.

.env: Este archivo almacena pares clave-valor que la aplicación puede cargar automáticamente al
iniciarse. Estos valores se pueden acceder dentro del código de la aplicación y utilizarse para
configurar aspectos específicos de la misma, como la conexión a la base de datos, el nivel de
depuración y otras características.

Eloquent: Es el ORM integrado de en Laravel, el cual permite interactuar con la base de datos de
una manera más sencilla y elegante.
CREACIÓN DE PROYECTO LARAVEL
Primero crearemos nuestro proyecto en laravel, para eso necesitamos entrar a la carpeta de
htdocs en xampp

Imagen 0.1 carpeta htdocs

Ahora escribiremos cmd en la ruta de la carpeta para crear un proyecto

Imagen 0.2 cmd

Escribiremos la siguiente línea de comando en el cmd para la creación de un proyecto

Imagen 0.3 create project

Tambien podemos crear un proyecto con la siguiente línea de código

Imagen 0.4 create Project 2


Ahora nos iremos a la rura de nuestro proyecto

Imagen 0.5 go Project

BARRA DE CONSULTAS
Ahora necesitamos una barra para poder ver las consultas que hago en su momento, para eso
necesito poner la siguiente línea de código

Imagen 0.6 install debugbar

Ahora nos iremos a nuestro editor de texto y abriremos el proyecto que hemos creado
database_app
Imagen 0.7 abrir proyecto
CONFIGURACIÓN BÁSICA
Ahora nos iremos a la carpeta de config y al archivo de [Link]. En la parte de providers
agregaremos la siguiente línea de código

Imagen 0.8 providers

También agregaremos la siguiente línea de código en aliases

Imagen 0.9 aliases

Ahora pegaremos la siguiente línea de código con la terminal

Imagen 1.0 provider terminal

Nos podremos dar cuenta que en nuestro servidor ya tenemos la siguiente barra para ver las
consultas
Imagen 1.1 debugbar laravel

Crearemos una nueva base de datos que se llame relaciones

Imagen 1.2 crear relaciones

Ahora en nuestro archivo .env referenciaremos a nuestra base de datos relaciones (en dado caso
de que no la hayamos creado, necesitamos crearla)

Imagen 1.3 relacionar db relaciones

Ahora escribiremos la siguiente línea de código en la terminal para hacer las migraciones

Imagen 1.4 migraciones

Nos daremos cuenta que se migraron todas las tablas que tenemos por defecto

Imagen 1.5 tablas default

MODELOS
Ahora crearemos un nuevo modelo llamado Profile con migraciones y factories, para eso
escribiremos la siguiente línea de código en la terminal
Imagen 1.6 model Profile

Nos daremos cuenta que se creó la nueva tabla junto con sus factories

Imagen 1.7 tabla Profile

RELACIONES
Ahora escribiremos el siguiente código en el modelo de [Link] ya que queremos que se
relacione con un perfil
Imagen 1.8 user hasOne Profile

Ahora configuraremos la tabla de profiles de la siguiente manera

Imagen 1.9 tabla providers

Volveremos a poner el siguiente comando para las migraciones


Imagen 2.0 migrate

Nos daremos cuenta de que las relaciones de las tablas están correctamente hechas

Imagen 2.1 relación users-profile

Ahora crearemos otro migration y factory de Level, para ello reutilizaremos la línea anteriormente
expuesta

Imagen 2.2 crear modelo nivel

De nuevo pondremos el siguiente código pero para crear una migración con la finalidad de que
level esté por delante de users

Imagen 2.3 crear migración nivel

MIGRACIONES
Copiaremos el siguiente código en la nueva tabla creada de level
Imagen 2.4 tabla 2 level

Ahora podremos migrar de nuevo con el comando php artisan migrate (un nivel tiene muchos
usuarios, y un usuario tiene un perfil)

Imagen 2.5 migrate add level at users

Ahora ya tendremos las tablas relacionadas de la siguiente manera

Imagen 2.6 tablas relación


Ahora pondremos el código siguiente en [Link] referenciando que un nivel tiene muchos
usuarios

Imagen 2.7 un nivel tiene muchos usuarios

Pegaremos el siguiente código en [Link] donde indicamos que un nivel pertenece a nivel para
saber el nivel al que pertenezco a través del usuario

Imagen 2.8 pertenece a

Crearemos un nuevo modelo llamado Group


Imagen 2.9 modelo group

Ahora crearemos una tabla intermedia (group-user) para guardar ambos id, es decir que por
ejemplo (el usuario 1 pertenece al grupo 1)

Imagen 3.0 group-user table

Escribiremos el siguiente código en la tabla de grupos para saber cuál es el nombre de cierto grupo

Imagen 3.1 nombre de grupos

Pondremos el siguiente código en la tabla intermedia de grupos

Imagen 3.2 grupos intermedia

Ejecutaremos el comando de migración y nos damos cuenta de que se creó la tabla de grupos y la
tabla intermedia correctamente

Imagen 3.3 grupos, grupos intermedia migración

Con eso tendremos las tablas relacionadas de la siguiente manera


Imagen 3.4 relación tablas

Pondremos el siguiente código en [Link] para poder decir que un usario pertenece a un grupo
pero también tiene muchos grupos (ponemos). Withtamestamps quiere decir que con fechas

Imagen 3.5 un usuario pertenece a muchos grupos

Copiamos y pegamos el mismo código pero para [Link] para decir que un grupo tiene
muchos usuarios, (por eso ponemos users en plural)
Imagen 3.6 un grupo pertenece a muchos grupos

AHORA TRABAJAREMOS UN POCO CON EL DISEÑO

Borraremos el siguiente if de la parte del código del archivo [Link]

Luego escribiremos el código siguiente en el [Link]

Imagen 3.7 reemplazar código [Link]

Ahora tendremos que entrar al [Link] y referenciar la vista welcome de la siguiente manera
Imagen 3.8 [Link]

Finalmente si queremos abrir el servidor nos mostrará algo así

Imagen 3.9 eloquent relaciones vista


Ahora haremos el modelo Location

Imagen 4.0 modelo location

Ahora escribiremos lo siguiente en la tabla que se nos acaba de crear de location

Imagen 4.1 tabla location

Ahora ejecutamos el comando de migración

Tabla 4.2 migrar datos location

Las relaciones de las tablas quedarían de la siguiente manera


TABLAS RELACIONADAS

MODELOS
Ahora escribiremos la siguiente parte del código del modelo User

Ahora pondremos el siguiente código en el modelo Profile

Creamos los siguientes modelos en la terminal


Imagen 4.3 crear modelos

Ahora creamos una tabla sin identidad ni factory para el tema de las etiquetas, es decir, crear
correctamente su relación

Imagen 4.4 migrar taggables

CONFIGURACIÓN DE TABLAS
Ahora agregaré el siguiente código en la tabla de categories
Imagen 4.5 tabla categorias

Hacemos lo mismo para la tabla posts

Imagen 4.6 tabla post

Lo mismo haremos para la tabla videos

Imagen 4.7 tabla videos

Lo siguiente será para la tabla comments

imagen 4.8 tabla comentarios

El siguiente es para imágenes


Imagen 4.9 tabla imágenes

Ahora pondremos lo siguiente para la tabla tags

imagen 5.0 tabla tags

Ahora lo siguiente para la tabla intermedia de tag

Imagen 5.1 tabla taggables

Volveremos a migrar

Imagen 5.2 migrar tablas

Pondremos lo siguiente en category


Imagen 5.3 modelo categoría relacionado

Así queda del lado de Posts

Imagen 5.4 relaciones modelo Post

El modelo videos queda de la siguiente manera


Imagen 5.5 relaciones modelo video

Así queda el modelo tag

Imagen 5.6 relaciones modelo tag

Modelo image

imagen 5.7 crear relaciones imágenes

Así quedan los comentarios


Imagen 5.8 relaciones modelo comentario

Modelo level

imagen 5.9 relaciones modelo nivel

Modelo user
Imagen 6.0 relaciones modelo user

CREACIÓN DE FACTORIES
Nos iremos a [Link] y pondremos el siguiente código para poder crear cierto
numero de datos

Imagen 6.1 databaseSeeder

Escribiremos el siguiente código en GroupFactory


Imagen 6.2 groupfactory

Lo siguiente para categoryfactory

Imagen 6.3 categoryFactory

Así quedan los [Link]

Imagen 6.4 commentFactory

Así queda [Link]


imagen 6.5 imageFactory

En este caso dejaremos Level como está

Lo siguiente es para location

Imagen 6.6 locationFactory

Lo siguiente es para Post

imagen 6.7 postFactory

[Link] queda de la siguiente manera


Imagen 6.8 profileFactory

Así queda [Link]

Imagen 6.9 tagFactory

Así queda el modelo User


imagen 7.0 modelo user

Por último el modelo Video queda de la siguiente manera

Imagen 7.1 videoFactory

DATABASE SEEDER
Modificamos el databaseSeeder de la siguiente manera finalmente
Imagen 7.2 databaseSeeder conf

Por último agregaremos la siguiente parte de código

Imagen 7.3 databaseSeeder agregar

Por último el DatabaseSeeder queda de la siguiente manera


Imagen 7.4 databaseSeeder final

Finalmente pondremos la siguiente línea de código en la terminal


Imagen 7.5 migraciones finales

Y nuestra base de datos por último queda así

Imagen 7.6 tablas finales


CONCLUSIÓN
En esta práctica pude observar muchas cosas desde la creación de modelos y tablas hasta la
resolución de problemas probablemente generados por el orden de la creación de las tablas.
Incluso las factories fueron algo muy interesante ya que insertan datos de manera aleatoria pero
también sigue las reglas que le das. Al principio la verdad la práctica se me hizo fácil hasta la parte
donde empezamos a relacionar todas las clases, por ejemplo para algunas tablas se relacionaba un
id con otra entidad de otra tabla pero si tenía un mínimo error como una s de más en users en vez
de user y solo tenía que tener relación de uno a uno, pues me daba error y probablemente la
creación de las tablas no iban a ser correctas. Algo que definitivamente me ayudó bastante fue el
inglés para comprender qué hacía cada una de las relaciones, pues ya que si lo interpretas bien, es
fácil de entender e implementar

También podría gustarte