مرحبًا ، هل من الممكن تجاوز اسم الأعمدة: ID، created_at، updated_at، delete_at؟
بقدر ما أعرف ، يمكنني تعيين اسم الجدول على سبيل المثال مع الوظيفة:
func (StructType) TableName() string {
return "MyCustomName"
}
هل ممكن الا مع الاعمدة؟ هذا لأن نموذج بيانات المشروع قد حدد بالفعل أسماء الحقول ، وعلى سبيل المثال ليس لدينا _updated_at_ ولكن _ModificationTimestamp_ لذا ، كيف يمكنني القيام بذلك؟
http://jinzhu.me/gorm/models.html#conventions
// Overriding Column Name
type Animal struct {
AnimalId int64 `gorm:"column:beast_id"` // set column name to `beast_id`
Birthday time.Time `gorm:"column:day_of_the_beast"` // set column name to `day_of_the_beast`
Age int64 `gorm:"column:age_of_the_beast"` // set column name to `age_of_the_beast`
}
smacker مرحبا ، شكرا لك. لكنني أحاول بالضبط أن أجعل gorm يأخذ اسمًا آخر للأعمدة التي يتم إنشاؤها تلقائيًا: created_at، updated_at، id. لقد جربت ما قلته ولكنه حدث خطأ لأنه على سبيل المثال تم تحديد العمود create_at بالفعل:
column "created_at" specified more than once)
فقط لا تقم بتضمين المعدل الافتراضي في البنية الخاصة بك. إذا نظرت كيف يتم تعريفها ، فسترى:
type Model struct {
ID uint `gorm:"primary_key"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time `sql:"index"`
}
يمكنك تحديد هذه الحقول في النموذج الخاص بك أو إنشاء نموذج أساسي خاص بك بأسماء مختلفة وتضمينه.
التعليق الأكثر فائدة
فقط لا تقم بتضمين المعدل الافتراضي في البنية الخاصة بك. إذا نظرت كيف يتم تعريفها ، فسترى:
يمكنك تحديد هذه الحقول في النموذج الخاص بك أو إنشاء نموذج أساسي خاص بك بأسماء مختلفة وتضمينه.