I added a custom callback and wanted to use a scope in. Bute the scope will not be called as expected. See the following code with different fmt.Println outputs:
// Add callback
db.Callback().Query().Before("gorm:query").Register("app:query:custom", customCallback)
// Custom callback function that calls a scope
func customCallback(db *gorm.DB) {
fmt.Println("customCallback 1")
db.Scopes(customScope("myVar"))
}
// Custom scope that also could be used in any other query.
func customScope(myVar string) func(db *gorm.DB) *gorm.DB {
fmt.Println("customScope 1")
return func(db *gorm.DB) *gorm.DB {
fmt.Println("customScope 2")
return db.Where("foo = ?", myVar)
}
}
Your Question
I added a custom callback and wanted to use a scope in. Bute the scope will not be called as expected. See the following code with different
fmt.Println
outputs:I would expect the following output:
but the last output is missing. I only see
The document you expected this should be explained
https://gorm.io/docs/scopes.html https://gorm.io/docs/write_plugins.html#Callbacks
Expected answer
Would be good to know if the behavoiur is correct and / or it is possible to use scopes in callbacks or not.