CursosEmpresasBlogLiveConfPrecios

Creación de Entidades y Migraciones en Symfony

Clase 7 de 17 • Curso de Symfony Framework

Contenido del curso

Symfony Framework

  • 1
    Crea una bolsa de empleo con Symfony

    Crea una bolsa de empleo con Symfony

    01:00 min
  • 2
    Autenticación y Gestión de Ofertas en Symfony

    Autenticación y Gestión de Ofertas en Symfony

    10:12 min
  • 3
    Desarrollo de Bolsa de Empleo con Symfony en PHP

    Desarrollo de Bolsa de Empleo con Symfony en PHP

    02:42 min
  • 4
    Modelo de Datos para Bolsa de Empleo: Entidades y Relaciones

    Modelo de Datos para Bolsa de Empleo: Entidades y Relaciones

    02:17 min
  • 5
    Virtualización y configuración de entornos de desarrollo con Homestead

    Virtualización y configuración de entornos de desarrollo con Homestead

    04:07 min
  • 6
    Creación y Configuración de un Proyecto Symfony con Homestead

    Creación y Configuración de un Proyecto Symfony con Homestead

    02:44 min
  • 7
    Creación de Entidades y Migraciones en Symfony

    Creación de Entidades y Migraciones en Symfony

    Viendo ahora
  • 8
    Creación de Controladores y Rutas en Symfony

    Creación de Controladores y Rutas en Symfony

    04:14 min
  • 9
    Listado y Creación de Empresas en Symfony

    Listado y Creación de Empresas en Symfony

    03:44 min
  • 10
    Control de Acceso y Creación de Usuarios en Symfony

    Control de Acceso y Creación de Usuarios en Symfony

    06:12 min
  • 11
    Creación de usuarios en Symfony para administradores

    Creación de usuarios en Symfony para administradores

    02:41 min
  • 12
    Listado y Postulación a Ofertas de Trabajo en Symfony

    Listado y Postulación a Ofertas de Trabajo en Symfony

    07:08 min
  • 13
    Layouts y herencia de templates en Twig

    Layouts y herencia de templates en Twig

    03:06 min
  • 14
    Envío de Correos en Symfony con Mailer y Transport

    Envío de Correos en Symfony con Mailer y Transport

    02:01 min
  • 15
    Despliegue de Aplicaciones Symfony en Producción

    Despliegue de Aplicaciones Symfony en Producción

    05:16 min
  • 16
    Comparativa de Frameworks PHP: Symfony, Laravel y Más

    Comparativa de Frameworks PHP: Symfony, Laravel y Más

    02:08 min
  • 17
    Symfony proyecto terminado: certifica y planifica

    Symfony proyecto terminado: certifica y planifica

    00:38 min
Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads

      Creando las entidades

      Lo primero que debemos hacer es escribir la configuración básica que necesitaremos para que nuestra aplicación pueda interactuar con una base de datos.

      Abre el archivo .env en tu editor favorito.

      Te encontrarás con algo como:

      Ejemplo del archivo

      Nota que hay una línea donde figuran los datos para conectarse a una base de datos (DATABASE_URL=...).

      Reemplaza esa línea por:

      DATABASE_URL=mysql://homestead:homestead@127.0.0.1:3396/homestead?serverVersion=5.7

      Para continuar vamos a trabajar desde adentro de la máquina virtual.

      Vamos a iniciarla con:

      vagrant up

      Y luego:

      vagrant ssh cd code

      Y aquí comienza la magia :)

      Magic

      En la clase anterior aprendiste cómo interactuar con el intérprete de comandos de Symfony (usarlo es una palabra un poco fuerte aún).

      Veamos ahora un uso muy importante: vamos a crear nuestra primera entidad.

      Para ello utiliza el comando

      php bin/console make:entity

      Lo que viene a continuación es una serie de preguntas que te realizará Symfony para ayudarte a crear el modelo de datos.

      Vamos a repasar el modelo de datos que habíamos visto en la clase 2.

      La primera entidad que vamos a crear será el oferente:

      Ejemplo de la entidad en terminal

      Ahora veamos qué es exactamente lo que hizo el framework.

      Si lees con atención verás que se actualizó el archivo src/Entity/Company.php.

      Al abrirlo encontrarás algo como esto:

      <?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity(repositoryClass="App\Repository\CompanyRepository") */ class Company { /** * @ORM\Id() * @ORM\GeneratedValue() * @ORM\Column(type="integer") */ private $id; /** * @ORM\Column(type="string", length=255) */ private $name; /** * @ORM\Column(type="string", length=255) */ private $email; public function getId(): ?int { return $this->id; } public function getName(): ?string { return $this->name; } public function setName(string $name): self { $this->name = $name; return $this; } public function getEmail(): ?string { return $this->email; } public function setEmail(string $email): self { $this->email = $email; return $this; } }

      Potente, ¿cierto? jeje… y esto recién empieza :)

      Nota como se utiliza muy extensamente la @ dentro de los comentarios.

      Esto no es para nada accidental. Se trata de una herramienta llamada annotations.

      Mediante ellos es posible dar indicaciones a otras herramientas.

      En nuestro caso, mucho de la configuración de nuestro proyecto estará escrita de este modo.

      Por ejemplo, si te fijas la definición de la propiedad $name:

      /** * @ORM\Column(type="string", length=255) */ private $name;

      Verás que el tipo de datos y la longitud están especificadas aquí.

      Esta información vendrá muy bien pronto, confía en mí :)

      Te dejo de tarea armar el resto de las entidades.

      ¡Excelente! Todo esto está genial, pero… ¿dónde se guardará toda esta información?

      La base de datos sigue intacta… falta algo, ¿cierto?

      Cierto.

      Para que todo esto tenga sentido necesitamos crear la estructura que mapee nuestras clases a la base de datos.

      Tenemos dos opciones para ello:

      Un comando que genera la estructura de la base de datos desde 0:

      php bin/console doctrine:schema:create

      O bien un comando que genere una migración (que luego tendremos que ejecutar):

      php bin/console make:migration

      Ambos darán el mismo resultado (en este contexto), sin embargo, es una buena práctica realizar todas las operaciones de modificación de la base de datos a través de migraciones, de esa forma es muy simple reconstruir todo en caso de ser necesario, por ejemplo, al pasárselo a otro desarrollador.

      Si abres el archivo generado (lo encontrarás dentro del directorio src/Migrations/) verás el código generado para crear la base de datos.

      Una vez hayas terminado de definir todas las entidades debes impactar esos cambios en la base de datos. Para ello puedes usar el comando php bin/console doctrine:migrations:migrate.

      El intérprete te preguntará si confirmas impactar los cambios (ya que potencialmente podrían destruir datos) y, una vez lo hayas hecho, te mostrará las sentencias SQL a medida que las ejecuta.

      Al finalizar podrás ver cómo quedó tu base de datos ingresando a la consola de MySQL escribiendo

      mysql use homestead show tables

      Lo interesante de usar las migraciones es que podrás ir realizando cambios incrementales, de modo que, a medida que avances en la comprensión del problema, irás dando más y más detalles a la definición de tu modelo de datos y, mediante este mecanismo, podrás evolucionar tu base de datos consecuentemente.

      En el caso de la entidad Offer encontrarás que tiene una propiedad que refiere a otra entidad: el owner (La compañía a la que pertenece la oferta).

      Para estos casos Doctrine dispone de una sintaxis particular y escribirla a través del comando make de Symfony es bastante fácil.

      El tipo de datos del campo owner debes definirlo como relation:

      Ejemplo en terminal

      El tipo de relación es ManyToOne de modo que una oferta se relaciona con una empresa y una empresa puede tener muchas ofertas.

      Cuando hayas terminado de armar la entidad Offer no olvides ejecutar el comando php bin/console make:migration para crear la nueva migración y php bin/console doctrine:migrations:migrate para actualizar tu base de datos.

      En la próxima clase desarrollaremos nuestras primeras pantallas, ¡no te la pierdas!

      Comentarios

      Alessandro Staiano

      Alessandro Staiano

      student•
      hace 6 años
        Mariano Gastón Paduani

        Mariano Gastón Paduani

        student•
        hace 4 años
      Edward Acu

      Edward Acu

      student•
      hace 6 años
      Cristian Camilo Perez Cardona

      Cristian Camilo Perez Cardona

      student•
      hace 6 años
        Cristian Orlando Rincon Bonilla

        Cristian Orlando Rincon Bonilla

        student•
        hace 6 años
        Mariano Gastón Paduani

        Mariano Gastón Paduani

        student•
        hace 4 años
      Jimmy Buriticá Londoño

      Jimmy Buriticá Londoño

      student•
      hace 5 años
      Alberto Ramírez Caballero

      Alberto Ramírez Caballero

      student•
      hace 6 años
      Kenet Andrés Chungandro Montenegro

      Kenet Andrés Chungandro Montenegro

      student•
      hace 6 años
      Carlos Eduardo Gomez García

      Carlos Eduardo Gomez García

      teacher•
      hace 5 años
        Jhon Fabio Cardona Martinez

        Jhon Fabio Cardona Martinez

        student•
        hace 5 años
      Juan Caviglia

      Juan Caviglia

      company_admin•
      hace 5 años
      Cristian Camilo Perez Cardona

      Cristian Camilo Perez Cardona

      student•
      hace 6 años
      Laura Albarracín

      Laura Albarracín

      student•
      hace 4 años
      Claudio Anibal Morales Pérez

      Claudio Anibal Morales Pérez

      student•
      hace 5 años
      Rodrigo Ortega

      Rodrigo Ortega

      student•
      hace 5 años
      Angel Fernando Quiroz Campos

      Angel Fernando Quiroz Campos

      student•
      hace 6 años
      Jose Maria Lopez Pacheco

      Jose Maria Lopez Pacheco

      student•
      hace 6 años
      Cristian Orlando Rincon Bonilla

      Cristian Orlando Rincon Bonilla

      student•
      hace 6 años
        Steven Moreno

        Steven Moreno

        student•
        hace 6 años
      Jose Maria Lopez Pacheco

      Jose Maria Lopez Pacheco

      student•
      hace 6 años
        Kenet Andrés Chungandro Montenegro

        Kenet Andrés Chungandro Montenegro

        student•
        hace 6 años
        Jose Maria Lopez Pacheco

        Jose Maria Lopez Pacheco

        student•
        hace 6 años
      Jose Maria Gomez Roncero

      Jose Maria Gomez Roncero

      student•
      hace 5 años
      Jimmy Buriticá Londoño

      Jimmy Buriticá Londoño

      student•
      hace 5 años

      Con respeto siempre por delante, pero menuda porqueria de curso. El formato en texto ya de por si es peor al de video, pero si ademas de eso no mantienen un buen orden coherente pues mal vamos. Te dice "Te dejo de tarea armar el resto de las entidades." pero donde narices esta eso bien explicado??. Lo unico que hay es en el tercer video una idea general del proyecto, pero no te aclara bien las entidades ni las columnas que debe tener cada cual. Sinceramente si fuese @platzi tiraria este curso a la basura y crearia uno en condiciones como se merece un Framework tan potente como Symfony. Dadle amor al comentario a ver si llamamos su atencion y nos hacen caso.

      Coincido totalmente!

      Con todo respeto, pero creo que los tutoriales que puedo encontrar en la red estan mejor que este curso, por primera vez me decepciona platzi

      El peor formato que puede existir

      *2 Este formato de lectura me ha generado mas errores en la configuración que lo aprendido realmente, está roto el material

      Espero que se den cuenta y armen mejores cursos de Symfony

      Recomendación Ya terminé todo el curso y en esta clase debes definir únicamente las entidades Company y Offer. En la clase 9 se crea la entidad User En la clase 11 se crea la entidad Applicant Por ahora no hay necesidad de ser muy creativos, las entidades básicas deben quedar así: Company name - string email - string Offer name - string owner - relation . Durante otras clases se adicionan un par de campos, pero no les daré Sploilers, así es suficiente.

      El modelo que se muestra en esta sección https://platzi.com/clases/1901-symfony-framework-2020/29475-analisis-del-modelo-de-datos/ es distinto al que aparece aquí, espero que luego se arregle.

      A alguien más les sale este error al ejecutar php bin/console doctrine:schema:create?

      Screenshot from 2020-06-10 23-54-38.png

      Vale... esta clase si me decepcionó un poco, realmente lo que no me gustó es que no te dice realmente qué columnas debo crear, claro, yo las puedo deducir con base en el modelo explicado en la clase 3, pero igual y el profesor usa diferentes columnas.

      Como sea, si les sale el error:

      The metadata storage is not up to date, please run the sync-metadata-storage command to fix this issue.

      Lo que tienen que hacer es ir a su .env y en la definición de la base de dato, al final donde dice 5.7 lo cambian por:

      mariadb-10.4.16

      Si estas usando MySQL y no MariaDB debería funconar con:

      mysql-5.7

      Aquí dejo la información:

      Pues la verdad si es muy diferente a comparación de Laravel, pero todo sea por aprender algo nuevo y obtener la certificación de php con Platzi

      Homestead me creó la DB con el password "secret" y no "homestead". En la documentación indica que ese es el password por defecto (ver: https://laravel.com/docs/7.x/homestead#connecting-to-databases).

      Así que la línea de conexión que funcionó para mi es: DATABASE_URL="mysql://homestead:secret@127.0.0.1:3306/homestead?serverVersion=5.7"

      (la estructura es DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name")

      Jesus esta primera imagen no se entiende nada !

      (

      Screen Shot 2020-06-10 at 5.24.10 PM.png

      Como add un nuevo campo a la bd usando doctrine?

      In AbstractPostgreSQLDriver.php line 102:

      DATABASE_URL="postgresql://postgres:anibal845465123@127.0.0.1:5432/symfony?serverVersion=13&charset=utf8"

      Tal como un amigo aqui, estoy trabajando sobre mi propio sistema en linux Mint, usé mysql 5.7 y para la configuración de env y su conexión con la db usé esto ;)

      DATABASE_URL="mysql://usuarioDB:contraseñaDB@127.0.0.1:3306/nombreDB?serverVersion=5.7"

      A mi me ha funcionado (Symfony 5.1.6) haciendo:

      php bin/console doctrine:database:create php bin/console make:migration php bin/console doctrine:migrations:migrate

      Para los que trabajan fuerea de las maquinas virtuales , a mi me funcionó que en lugar de 127.0.0.1:3306 usen solo 127.0.0.1 entonces quedaría algo asi DATABASE_URL=mysql://db_user:db_password@127.0.0.1/db_name?serverVersion=5.7 , suponiendo que en Windows a veces no se tiene contraseña DATABASE_URL=mysql://db_user@127.0.0.1/db_name?serverVersion=5.7

      Espero les funcione!

      Me aparece este error

      php bin/console doctrine:schema:create ! ! [CAUTION] This operation should not be ! executed in a production ! environment! ! Creating database schema... In ToolsException.php line 34: Schema-Tool failed with Error 'An exception occurred in driver: SQLSTATE[HY000] [2002] C onnection refused' while executing DDL: CREA TE TABLE company (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, email VARC HAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unico de_ci` ENGINE = InnoDB In AbstractMySQLDriver.php line 93: An exception occurred in driver: SQLSTATE[HY 000] [2002] Connection refused In PDOConnection.php line 31: SQLSTATE[HY000] [2002] Connection refused In PDOConnection.php line 27: SQLSTATE[HY000] [2002] Connection refused doctrine:schema:create [--dump-sql] [--em [EM]] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command>

      mi .env tiene esto

      DATABASE_URL=mysql://homestead:secret@127.0.0.1:3306/homestead?serverVersion=5.7

      Creo que es el puerto tambien:

      DATABASE_URL=mysql://homestead:secret@127.0.0.1:33060/homestead?serverVersion=5.7

      https://laravel.com/docs/7.x/homestead#connecting-to-databases


      Ademas

      homestead up | homestead ssh

      creo que es:

      vagrant up | vagrant ssh

      dentro de la carpeta ~/Homestead

      alguien sabe como hacer este paso en Linux?

      yo sigo el curso en ubuntu, en qué paso te quedaste?

      Justo en este paso no entiendo como avanzar , no entiendo como conectar a la base de datos

      Lo siento, pero llevo meses intentando hacer el curso y no funciona absolutamente nada a la primera, me las tengo que arreglar por fuera.

      Lo abandono por que es totalmente desesperante

      Es increíble que gaste horas en esta sola clase, pero ya tengo las tablas listas en MySQL. A esta clase le falta definir bien la estructura de las tablas, nombre y tipo de cada campo. Voy a seguir con el curso, si todo funciona bien, regresaré a esta clase 6 y dejaré la información para que futuros estudiantes no sufran tanto como lo he hecho yo.