From 7c5ec0752239b7a002f87085d34478b0e2b81e5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Molveau?= Date: Sun, 22 Jan 2017 13:57:21 +0100 Subject: [PATCH] Add back-reference example to many-to-many doc --- documents/associations.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/documents/associations.md b/documents/associations.md index 146a08b7..5e474dc0 100644 --- a/documents/associations.md +++ b/documents/associations.md @@ -174,6 +174,25 @@ db.Model(&user).Related(&languages, "Languages") //// SELECT * FROM "languages" INNER JOIN "user_languages" ON "user_languages"."language_id" = "languages"."id" WHERE "user_languages"."user_id" = 111 ``` +*With back-reference : +```go +// User has and belongs to many languages, use `user_languages` as join table +// Make sure the two models are in different files +type User struct { + gorm.Model + Languages []Language `gorm:"many2many:user_languages;"` +} + +type Language struct { + gorm.Model + Name string + Users []User `gorm:"many2many:user_languages;"` +} + +db.Model(&language).Related(&users) +//// SELECT * FROM "users" INNER JOIN "user_languages" ON "user_languages"."user_id" = "users"."id" WHERE ("user_languages"."language_id" IN ('111')) +``` + *Specify Foreign Key & Association Key* ```go