35 - Relacion uno a uno (One To One) - Curso Laravel 10 desde cero

Поделиться
HTML-код
  • Опубликовано: 3 авг 2024
  • En una relación uno a uno en una base de datos, una fila de una tabla se relaciona con exactamente una fila en otra tabla y viceversa. Esta relación se establece mediante la creación de una clave foránea en la tabla que representa el lado "muchos" de la relación, que apunta a la clave primaria de la tabla que representa el lado "uno".
    Un ejemplo común de una relación uno a uno es una tabla de usuarios y una tabla de perfiles de usuario, donde cada usuario tiene exactamente un perfil y cada perfil pertenece a un solo usuario. En este caso, la clave primaria de la tabla de usuarios se convierte en la clave foránea en la tabla de perfiles de usuario, estableciendo así la relación uno a uno.
    ------------------------------------------------------------------------------------------------
    CURSOS
    🔴 Facturacion electronica Perú: youtube.codersfree.com/larave...
    🟠 Laravel avanzado: youtube.codersfree.com/larave...
    🟢 Ecommerce: youtube.codersfree.com/ecommerce
    🔵 Api: youtube.codersfree.com/api-re...
    🟠 Plataforma de cursos: youtube.codersfree.com/plataf...
    🔴 Vue e Ineria: youtube.codersfree.com/vue-3-...
    🟣 Eloquent Avanzado: youtube.codersfree.com/eloque...
    🟡 Pasarela de pagos: youtube.codersfree.com/pasare...
    ⚫ Laravel Web Socket: youtube.codersfree.com/larave...
    🟣 Notificaciones: youtube.codersfree.com/notifi...
    🟢 Laravel Excel: youtube.codersfree.com/larave...
    🔵 Digital Ocean: youtube.codersfree.com/despli...
    🟡 Laravel Voyager: youtube.codersfree.com/larave...
    🟣 Datatable Livewire: youtube.codersfree.com/datata...
    🟠 Tenancy for Laravel: youtube.codersfree.com/multi-...
    🔵 TDD Laravel: youtube.codersfree.com/tdd-la...
    ⚫ Traducir páginas: youtube.codersfree.com/traduc...
    🟠 Wire UI: youtube.codersfree.com/livewi...
    🔴 Acortador de links: youtube.codersfree.com/acorta...
    🟡 Banhammer for laravel: youtube.codersfree.com/banham...
    🟢 Laravel backup: youtube.codersfree.com/larave...
    🔵 Actualizar a Laravel 10: youtube.codersfree.com/actual...
    -----------------------------------------------------------------------
    DONACIONES
    Patreon: / codersfree
    PayPal: www.paypal.com/paypalme/Coder...
  • НаукаНаука

Комментарии • 69

  • @Salva_Ramirez
    @Salva_Ramirez 3 года назад +9

    Por fin alguien que explica esta cosa como es. Muchas gracias de verdad ya si estoy encaminado con eloquent.

  • @bad39g2
    @bad39g2 3 года назад +8

    Gracias por ser tan detallado. No sabes lo mucho que ayudas a mi vida con tu curso. Mil bendiciones para ti

  • @yazzer1046
    @yazzer1046 3 года назад +6

    Si no les crea las relaciones es porque laravel creo por defecto la base de datos con MySAM.
    Para cambiarlo vayan a "config/database.php" en la parte de la configuración de 'mysql' => [...] dentro en la parte de 'engine' => 'null' cambien a 'engine' => 'InnoDB'. Eliminen las tablas manualmente y vuelvan a crear la migración.

    • @cesarmartinez6341
      @cesarmartinez6341 2 года назад

      Bro, parecía que no tenía sentido lo que estaba haciendo, pero a pesar de que si me hacía la relación en phpMyAdmin, no me relacionaba las bases en Tinker, con esto lo pude solucionar. Gracias!

  • @zantsama
    @zantsama 4 месяца назад +1

    Excelente clase

  • @jonysmusic4845
    @jonysmusic4845 4 месяца назад

    Que fregon video, muchas gracias, like bien merecido

  • @sabiobrook7258
    @sabiobrook7258 Год назад

    Bro le puse pause para comentarte que lo haces muy bien, y pensar que no quería entrar por que vi que estaba largo, muchas gracias!!! me queda todo claro me aventare tus vídeos:)

  • @davisaparicio1034
    @davisaparicio1034 2 года назад

    Todos tus videos son una gran aporte, muchas gracias por compartir el conocimiento

  • @brandonvillegas6301
    @brandonvillegas6301 3 года назад

    Excelente, tenía mucho esperando este vídeo, Gracias

  • @sergiocasao
    @sergiocasao 2 года назад +3

    No es necesario importar profile porque están en el mismo namespace.

  • @edmecar1810
    @edmecar1810 3 года назад +1

    Victor muchisimas gracias por todo, muy bien explicado, Saludos.

  • @pataslocas4595
    @pataslocas4595 3 года назад

    Simplemente grandioso, ¡Muchas gracias!.

  • @brian6358
    @brian6358 3 года назад

    Muy buenos tutoriales!! Excelente la explicación de todos los temas!

  • @IngPedroAraujo
    @IngPedroAraujo 3 года назад

    Gracias. Victor por tan excelente material.

  • @douglas_dev
    @douglas_dev Год назад

    excelente contenido de valor, felicidades por gran aporte

  • @juanzu7647
    @juanzu7647 3 года назад

    Muy bien explicado, muchas gracias men! Dios te bendiga.

  • @ricardopedraza6897
    @ricardopedraza6897 2 месяца назад

    Que buen video! Like +1!!

  • @miformadepensar
    @miformadepensar 3 года назад

    12:25 Feliz noche. eso me gusto porque hay referencias como facturación por usuarios que se puede eliminar al usuario pero la referencia de venta se mantendría, aunque con el dato fragmentado. claro a meses o años no haría falta solo mantener la referencia.! gracias eso me yudo a tener mas ideas.!

  • @cristobal-r2b
    @cristobal-r2b Год назад

    Excelente Trabajo, muchísimas gracias!

  • @adrianm4287
    @adrianm4287 3 года назад

    Excelente explicación, muchas gracias! :)

  • @yubervasquez
    @yubervasquez 3 года назад

    Victor como siempre, muy agradecido

  • @carloscartagena6724
    @carloscartagena6724 3 года назад

    Muy buena explicacion muchas gracias Victor

  • @alegalicia
    @alegalicia 3 года назад

    Excelente curso!

  • @aztecsavo82
    @aztecsavo82 3 года назад

    Muy buen video Gracias Saludos!!!

  • @frezzer33
    @frezzer33 3 года назад

    Buen video mi hermano !!

  • @carlosnino4008
    @carlosnino4008 Год назад

    Gracias Victor

  • @jhosagidpirelapineda7808
    @jhosagidpirelapineda7808 3 года назад

    Gracias amigo esta excelente

  • @antoniolanas481
    @antoniolanas481 3 года назад

    Hola, muy bueno de nuevo

  • @manug6186
    @manug6186 11 месяцев назад

    muchas gracias por las explicaciones

  • @angelvaldez3517
    @angelvaldez3517 3 года назад

    SOS UN MAESTRO!

  • @alexischacon4666
    @alexischacon4666 Год назад

    Gracias

  • @ArgFernando
    @ArgFernando Год назад

    Gracias !

  • @JEAM26
    @JEAM26 3 года назад +1

    Excelente , seria genial el paquete spatie

  • @dgrvedado
    @dgrvedado 2 года назад +1

    Amigo esta buenisima la explicación, pero si en tu modelo ya tienes el namespace definido en "App\Models" no es necesario que cuando uses el Profile::class exprese el archivo con un "use", porque ya buscará dentro de ese namespace y asumirá directamente ese archivo. Así que poner la comilla con el vínculo al archivo es escribir código de más.

  • @josevictorvillalucero1391
    @josevictorvillalucero1391 Год назад

    estoy empezando con laravel y ahora tengo que aprender a usar spatie, seria interesante hacer una reseña al respecto.

  • @cristhiancarvia5337
    @cristhiancarvia5337 3 года назад +1

    en mi caso no me anduvo el metodo foreign('user_id') para determinar claves foraneas tuve que determinar el motor de busqueda en las migraciones de users y profiles con el siguiente comando $table->engine = 'InnoDB'; por si alguno le pasa lo mismo

  • @cesarvasquezleon1527
    @cesarvasquezleon1527 3 года назад

    Felicitaciones por los videos, una consulta, podrías darnos un ejemplo de como sería el código usando procedimientos almacenados en Laravel 8, pq al usarlo siempre se emite un error cuando enviamos los datos del procedimiento a la vista.

  • @jota4894
    @jota4894 3 года назад

    Muy buen vídeo sobre laravel. Tengo una pregunta que quizá no sea sobre el tema que llevas. Alguna vez has utilizado Phalcon? La vrd tengo algunas dudas respecto a ese framework y no se ah quien consultarle.

  • @AngeloCarrasco1990
    @AngeloCarrasco1990 3 года назад

    Buen video, que paquetes para generar roles y permisos existen? Cuales son los mas utilizados?

  • @jorgefernandorodriguez1581
    @jorgefernandorodriguez1581 3 года назад +3

    Hola, tengo una consulta sobre Tinker. Primero muy buena explicación, realicé la relación 1 a 1, y funcionó.
    El problema es que tengo un modelo llamado "Event" (lo utilizo xq manejo un calendario). Yo generalmente no utilizo la sentencia "use App\NombreModelo", es decir, por ejemplo, directamente si quiero recuperar el usuario con el id 1, escribo
    "user = User::find(1);" le doy enter, y me trae la información.
    Con el modelo Event pongo "$event = Event::find(1);" y me muestra el siguiente error: "Call undefined method". Y cuando pongo el "use App\Event" si funciona. Puede ser que la palabra Event sea una palabra reservada en Tinker? Yo hice la prueba en el controlador (con dd) y obtengo los datos.
    Gracias

  • @jmaurich
    @jmaurich 3 года назад +4

    Hola profe, cada dia me entusiasma mas tu curso. Con respecto al paquete para roles y permisos, puede ser spatie?. Tus videos son una genialidad. muchas gracias por compartirlos.

    • @CodersFree
      @CodersFree  3 года назад +1

      Es muy probable que sea con spatie, que es el que más me habían pedido con anterioridad 😁

  • @KevinLopez-zk4gu
    @KevinLopez-zk4gu 3 года назад

    Hola amigo, excelente video muchas gracias por este contenido valioso. Una pregunta, dónde debería almacenar las imagenes (.jpg, .png, etc) de mi sitio si estoy usando laravel jetstream

  • @winydener
    @winydener 3 года назад

    @coders free hola gracias por tus cursos me an servio mucho no solo aqui tambien en tu pagina,Tengo un a duda al hacer la prueba ala inversa con cualquiera de los dos modelos solo me da la info del modelo q uso y al querer llamar al otro modelo por la llave primaria me da el valor de NULL ¿por q es esto?

  • @josueduran08z
    @josueduran08z 3 года назад

    También se podría usar una relación polimórfica n:m en la relación de la tabla roles con users y permisos?

  • @danielpinilla9679
    @danielpinilla9679 2 года назад

    Tengo una duda, cual es la diferencia entre crear las relaciones de las tablas en la migracinón o de hacerlas mediante los modelos ? en que casos se usa y cuando es recomendable ?

  • @sergiocasao
    @sergiocasao 2 года назад

    Una pregunta porque profiles tiene una llave primaria? no podrías usar el user_id como llave primaria del profile?

  • @Manu_MDJ
    @Manu_MDJ 2 года назад

    A mi me funciona uno pero no el otro cuanto hago consulta de user a profile me funciona correctamente pero cuando hago lo inverso me marca null

  • @jd-foo
    @jd-foo 2 года назад +3

    Hola, un consejo, verdaderamente deberías evitar nombrar cualquier tipo de entidad en Español, ya sea variables, clases, tablas, campos, etc.
    El Inglés es el idioma universal en este rubro y por tal es el que se debe usar, si en algún momento necesitas incorporar a tu proyecto gente de otras partes del mundo se van a encontrar con un problema que era evitable. Y si de todos modos decides usar Español por lo menos mantén la consistencia, es incluso mucho peor utilizar diferentes lenguajes aleatoriamente.

  • @stevejaime2008
    @stevejaime2008 3 года назад +1

    Hola Victor! Muy buenos los videos! Respecto al paquete de permisos ¿Podría ser el que esta incorporado en jetstream para equipos o se puede añadir spatie para equipos en jetstream?

    • @CodersFree
      @CodersFree  3 года назад

      Hola, la verdad es que no he profundizado mucho con los equipos de jetstream, pero su uso no va por el tema de roles y permisos sino de trabajar en equipos, algo así como los grupos de Spotify

    • @stevejaime2008
      @stevejaime2008 3 года назад

      @@CodersFree Claro, pero como cuando añadis un usuario te permite agregarle un rol, el cual tiene permisos asignados....por eso te lo planteaba. Bueno a esperar entonces el video del paquete que selecciones.

    • @CodersFree
      @CodersFree  3 года назад +2

      Claro, pero le das un rol dentro del equipo, no le das un rol para el control de tu página 😅
      Algo así como el rol de moderador o administrador que le das a una persona en un grupo de Facebook.
      Mientras que en el sistema de roles y permisos de spatie por ejemplo, le das un rol para que administre cierta sección de tu web.

  • @hpsadiv4966
    @hpsadiv4966 3 года назад

    como muestro el objeto que llame de la tabla en el model?

  • @davidlara4707
    @davidlara4707 3 года назад +2

    @Coders Free creo que tengo un error, cuando reviso mi localhost para insertar datos como haces en 15:35 la clave foranea user_id no me aparece la lista desplegable, no me sale ningun error en mi codigo, que hago?

    • @CodersFree
      @CodersFree  3 года назад

      Publica tu código en el grupo Coders Free de Facebook

    • @davidlara4707
      @davidlara4707 3 года назад

      @@CodersFree ok, gracias :)

    • @cristianguzman1669
      @cristianguzman1669 3 года назад

      Hola.. supongo que ya lo solucionaste.. pero por las dudas.. yo lo solucione cambiando el motor de almacenamiento en phpmyadmin. Se debe seleccionar cada tabla, ir a Mas -> Operaciones -> Opciones de tabla -> Motor de almacenamiento, y luego cambiarlo a InnoDB.

    • @cristianguzman1669
      @cristianguzman1669 3 года назад +1

      Otra solución es buscar y modificar el archivo 'my.ini' que viene con mysql, buscar la opción 'default-storage-engine=MYISAM' y cambiar MYISAM por INNODB. Quedaria asi, 'default-storage-engine=INNODB'. Luego reiniciar todos los servicios y ahora las tablas por defecto serán InnoDB. Obviamente hay que crear las tablas de nuevo.

    • @jhondairorivera3543
      @jhondairorivera3543 3 года назад

      @@cristianguzman1669 hola que tal amigo como te va, tengo ese mismo problema que no se sale para la opción para insertar el user_id revise mis tablas y todas las tengo con ese motor de almacenamiento que puedo hacer?

  • @irvingo.8017
    @irvingo.8017 2 года назад

    spatie

  • @jesuscdjr
    @jesuscdjr 3 года назад +1

    El paquete spatie porfa

  • @robertocarlo2014
    @robertocarlo2014 2 года назад

    como es 1 a 1, como saber a cual colocar HASONE y a cual BELONGS TO, ahi me perdi

    • @robertocarlo2014
      @robertocarlo2014 2 года назад +1

      como vi en anteriores respuestas, donde no tienes el tiempo de responder, me doy cuenta que dependiendo donde colocas la llave foranea, de pende el uso de hasOne o belongsTo

  • @EnderOrtega
    @EnderOrtega 3 года назад

    En la vida real casi no se hacen ese tipo de relaciones, los campos de la tabla "Profiles" van en la tabla "Users" y listo.

    • @CodersFree
      @CodersFree  3 года назад +4

      Okas, ahorita elimino el video, ya que en tu experiencia está relacion no sirve 🤗

  • @cristofercalvo6798
    @cristofercalvo6798 3 месяца назад

    Que horrible es laravel xD, literal, spring boot es mas facil!