Gorm: рдвреВрдБрдвреЗрдВ () рдФрд░ рдкрд╣рд▓реЗ () рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рдирд╡ре░ 2014  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: go-gorm/gorm

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖрдкрдХреЗ рдХреЛрдб рдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд╕рд╛рде рд╣реИред
рдореИрдВ рдпрд╣ рднреА рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдиреЗ рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдпрд╛ PHP-Laravel рдХреЗ рдЖрдзрд╛рд░ рдкрд░ GORM рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдХреЛрдИ рдЧрд▓рддреА рд╣реИред

http://laravel.com/docs/4.2/eloquent

рдореБрдЭреЗ рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдореЗрд░реЗ рд╕рднреА рд╕реБрдЭрд╛рд╡реЛрдВ рд╕реЗ рд╕рд╣рдордд рд╣реЛрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк Laravel рдореЗрдВ рдлрд╛рдЗрдВрдб () рдФрд░ рдлрд░реНрд╕реНрдЯ () рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рдСрд▓ (), рдлрд░реНрд╕реНрдЯ (), рдлрд╛рдЗрдВрдб (), рдЧреЗрдЯ ()ред

рд▓реЗрдХрд┐рди рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдкрд░рд┐рдгрд╛рдо рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреА рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рд╕рдВрд░рдЪрдирд╛ (рдмрд┐рдирд╛ рдЯреБрдХрдбрд╝рд╛) рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдиреЗ рдкрд░ рднреА рдЯреБрдХрдбрд╝рд╛ рд▓реМрдЯрд╛рддреА рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдирдорд╕реНрддреЗ @pjebs

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ ActiveRecord рд╕реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЪреБрд░рд╛ рд▓рд┐рдпрд╛ рд╣реИ, рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдиреАрдЪреЗ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

db.First(&User{})   // first user, sort by primary key
db.First(&[]User{}) // find the first user, and put it into the array

db.Find(&User{})   // first user
db.Find(&[]User{}) // find all users

// find records with conditions
db.First(&User{}, 123)
db.First(&User{}, "name = ?", "hello")
db.Find(&User{}, "name = ?", "hello")
db.Where("name = ?", "hello").First(&User{})
db.Where("name = ?", "hello").Find(&User{})

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЧреНрд░рд╛рд╣рдХ рд╕рдВрд░рдЪрдирд╛ рдЯрд╛рдЗрдк рдХрд░реЗрдВ {
рдЖрдИрдбреА uint32 gorm:"column:id; primary_key:yes"
Access_token рд╕реНрдЯреНрд░рд┐рдВрдЧ gorm:"column:access_token"
}

func (рд╕реА рдЧреНрд░рд╛рд╣рдХ) рдЯреЗрдмрд▓рдирд╛рдо () рд╕реНрдЯреНрд░рд┐рдВрдЧ {
рд╡рд╛рдкрд╕реА "рдЧреНрд░рд╛рд╣рдХ"
}

func MyMiddleware(rw http.ResponseWriter, r *http.Request) {
// рдЖрдк:= []рдЧреНрд░рд╛рд╣рдХ{}
рдЖрдк:= &рдЧреНрд░рд╛рд╣рдХ{}

db, _ := gorm.Open("mysql", "root:@/main")
// db.First(&u, 5)
// db.First(&u)
// db.Find(&u, 5)
db.Find(&u)

}

рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ:

рдкрд╣рд▓рд╛ рдЖрджреЗрд╢:
рдпрд╣ рд▓реМрдЯрд╛рдП рдЬрд╛ рд░рд╣реЗ рд╕рднреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдкрд╣рд▓рд╛ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред (рдХреНрдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд WHERE рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ)ред
рдЗрд╕реЗ рдПрдХ рдкрд░рд┐рдгрд╛рдо рдХреЛ &рдЧреНрд░рд╛рд╣рдХ {} рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╡рд╣рд╛рдВ рдПрдХ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рддрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдЬрдм &u рдХрд┐рд╕реА рд╕реНрд▓рд╛рдЗрд╕ рдХрд╛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рд╣реИред &u рдХреЛ &рдЧреНрд░рд╛рд╣рдХ{} рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рди рдХрд┐ &[]рдЧреНрд░рд╛рд╣рдХ{} рдХреЛред

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдХрднреА рднреА рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред FIND рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдпрд╣реА рд╣реИред

рдЖрджреЗрд╢ рдЦреЛрдЬреЗрдВ:
рдЬрдм Find рдХрдорд╛рдВрдб рдХреЛ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рджреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЙрд╕реЗ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдорд╛рди рдХреА рднреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдЖрдк рд╕рднреА рдорд╛рди рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ "рд╕рднреА" рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред db.ALL(&u) рдЬрд╣рд╛рдВ &u=[]рдЧреНрд░рд╛рд╣рдХ{}

http://daylerees.com/codebright/eloquent-queries
http://laravel.com/docs/4.2/queries

рд╕рднреА рдЖрджреЗрд╢:
рдЗрд╕реЗ рдЖрдкрдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд╣ рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ред

db.All(&u), рдЬрд╣рд╛рдВ &u=[]рдЧреНрд░рд╛рд╣рдХ{}

рдЖрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
рдЗрд╕реЗ рдЖрдкрдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ WHERE рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж рд╕рд╣рд┐рдд рд╕рднреА рдорд╛рдиреЛрдВ рдХрд╛ рдПрдХ ARRAY рд▓реМрдЯрд╛рдПрдЧрд╛ред

рдирдорд╕реНрддреЗ @pjebs

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ ActiveRecord рд╕реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЪреБрд░рд╛ рд▓рд┐рдпрд╛ рд╣реИ, рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдиреАрдЪреЗ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

db.First(&User{})   // first user, sort by primary key
db.First(&[]User{}) // find the first user, and put it into the array

db.Find(&User{})   // first user
db.Find(&[]User{}) // find all users

// find records with conditions
db.First(&User{}, 123)
db.First(&User{}, "name = ?", "hello")
db.Find(&User{}, "name = ?", "hello")
db.Where("name = ?", "hello").First(&User{})
db.Where("name = ?", "hello").Find(&User{})
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Ganitzsh picture Ganitzsh  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kumarsiva07 picture kumarsiva07  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

satb picture satb  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bramp picture bramp  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

fieryorc picture fieryorc  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ