Editor PHP Xinyi kadangkala menghadapi masalah apabila menggunakan GORM: dalam kaedah carian, hasil yang dikembalikan kehilangan beberapa medan. Ini mungkin kerana kami tidak menambah label pada medan semasa menentukan struktur. Dalam GORM, anda boleh menentukan cara medan dipetakan dalam pangkalan data dengan menggunakan tag. Oleh itu, untuk menyelesaikan masalah ini, kita perlu menambah label yang betul pada setiap medan dalam struktur untuk memastikan bahawa nilai semua medan boleh dikembalikan dengan betul semasa membuat pertanyaan.
Cuba menggunakan kaedah GORM find untuk mendapatkan nilai jadual pangkalan data, tetapi ia tidak mengembalikan nilai semua medan. Struktur meja ialah,
CREATE TABLE `company` ( `id` varchar(36) NOT NULL, `createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `name` varchar(255) NOT NULL, `newId` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Dalam company.go, kami mentakrifkan struktur syarikat sebagai,
package entities import "time" type Company struct { Id string `json:"id" gorm:"column:id;primaryKey"` CreatedAt time.Time `json:"createdAt" gorm:"column:createdAt"` UpdatedAt time.Time `json:"updatedAt" gorm:"column:updatedAt"` Name string `json:"name" gorm:"column:name"` NewId string `json:"newId" gorm:"column:newId"` }
Dalam syarikat pengawal.go, gunakan kod berikut untuk mendapatkan data,
var companys []entities.Company result := db.Find(&companys) c.JSON(http.StatusOK, &result)
Dalam posmen ia hanya mengembalikan nilai nama medan dan id. Medan selebihnya mempunyai nilai kosong. Apa yang boleh menjadi masalah?
Saya cuba mendapatkan semua medan menggunakan kaedah cari GORM tetapi ia hanya memberi saya dua medan
Data dalam jadual adalah seperti berikut,
Seperti yang dinyatakan dalam dokumentasi , createdAt
和updatedAt
是由GORM管理的,所以你可以留下 gorm
tag?
Atas ialah kandungan terperinci Medan tiada dalam kaedah carian GORM. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!