Search code examples
gobuffalo

Specify many-to-many relationship in buffalo model


Please does anyone know how to specify a many-to-many relationship in buffalo models?


Solution

  • gobuffalo many_to_many ...

    type Organization struct {
        ID               int                `json:"id" db:"id"`
        Users            Users              `many_to_many:"user_organizations"`
    }
    
    
    type User struct {
        ID                int                `json:"id" db:"id"`
        Organizations     Organizations      `many_to_many:"user_organizations" json:"-"`
    }
    
    
    type UserOrganization struct {
        ID             int          `json:"id" db:"id"`
        OrganizationID int          `json:"organization_id" db:"organization_id"`
        UserID         int          `json:"user_id" db:"user_id"`
        User           User         `belongs_to:"users"`
        Organization   Organization `belongs_to:"organizations"`
    }
    

    Each of these structs are in their own models/*.go file

    https://gobuffalo.io/en/docs/db/relations