Querying for All Records
Luckily, pulling all records is even easier than pulling one record.
package main
import (
"bitbucket.org/pop-book/models"
"fmt"
"github.com/gobuffalo/pop"
"log"
)
func main() {
tx, err := pop.Connect("development")
if err != nil {
log.Panic(err)
}
users := []models.User{}
err = tx.All(&users)
if err != nil {
fmt.Print("ERROR!\n")
fmt.Printf("%v\n", err)
} else {
fmt.Print("Success!\n")
fmt.Printf("%v\n", users)
}
}
We create a slice of the models.User
struct, and pass that pointer into the connection's All
function. It then gets populated with data, just as with the Find
command. Compiling and running will result in
./main
Success!
[{"id":"bf3ba75b-8dfe-4619-b832-31c4a087a589","created_at":"2017-12-19T14:06:20.473953-05:00","updated_at":"2017-12-19T14:06:20.473956-05:00","title":"Ms.","first_name":"Jessica","last_name":"Jones","bio":"Private security, super hero."} {"id":"61b2db41-a66b-4093-8580-be0b114ec04e","created_at":"2017-12-19T14:06:20.476127-05:00","updated_at":"2017-12-19T14:06:20.476128-05:00","title":"Mr.","first_name":"Luke","last_name":"Cage","bio":"Hero for hire."} {"id":"d86df65e-2bf8-4bec-9b23-8d7b274a401a","created_at":"2017-12-19T14:06:20.476837-05:00","updated_at":"2017-12-19T14:06:20.476838-05:00","title":"Mr.","first_name":"Danny","last_name":"Rand","bio":"Martial artist."} {"id":"bd73c1a3-0259-4e0a-a3b2-232cf94b52ff","created_at":"2017-12-19T14:06:20.47763-05:00","updated_at":"2017-12-19T14:06:20.477631-05:00","title":"Mr.","first_name":"Matthew","last_name":"Murdock","bio":"Lawyer, sees with no eyes."} {"id":"240ec3c5-019d-4031-9c27-8a553e022297","created_at":"2017-12-19T14:06:20.478384-05:00","updated_at":"2017-12-19T14:06:20.478385-05:00","title":"Mr.","first_name":"Frank","last_name":"Castle","bio":"USMC, badass."}]