logo Buffalo slack logo
Asociaciones Uno a Uno
Base de datos

Asociaciones Uno a Uno

En este capítulo, aprenderás a como escribir una asociación uno a uno en Pop.

Tags

Las asociaciones Uno a Uno usan un par de tags:

  • belongs_to para el modelo con una llave foránea.
  • has_one para un modelo sin llave foránea.

Ejemplo

// Models

type Head struct {
  ID           int
  BodyID       int        `db:"body_id"`
  Body         *Body      `belongs_to:"body"`
}

type Body struct {
  ID           int
  Head         Head       `has_one:"head"`
}
// Creación con Eager:
// Crear un `Body` con su `Head`.
b := &models.Body{
    Head: models.Head{},
}

if err := tx.Eager().Create(b); err != nil {
    return err
}
// Buscar todos los `Bodies` con sus `Head` usando Eager.
bodies = &models.Bodies{}

if err := c.Eager().All(bodies); err != nil {
    log.Printf("err: %v", err)
    return
}

log.Printf("eager fetch: %v", bodies)

Contenido Relacionado