как работать с gorm с предзагрузкой и фильтрацией я застрял на некоторое время, может быть, может помочь мне
type JualmstModel struct {
Trnjualmstoid int `json:"jualid"`
Trnno string `json:"jualno"`
JualdtlModel []JualdtlModel `gorm:"foreignkey:Trnjualmstoid;association_foreignkey:Trnjualmstoid"`
}
type JualdtlModel struct {
Trnjualdtloid int `json:"jualdtlid"`
Trnjualmstoid int `json:"jualid"`
Item ItemModel `gorm:"foreignkey:itemoid;association_foreignkey:itemoid"`
Itemoid int `json:"Itemoid"`
}
type ItemModel struct {
Itemoid string `json:"itemid"`
Itemdesc string `json:"itemdesc"`
}
вот модель
DB.Find(b).
Preload("JualdtlModel.Item", "itemdesc like ?", "%"+menu+"%").
Find(b)
вот результат
"jualid": 1,
"jualno": "INV/201902/0001",
"JualdtlModel": [
{
"jualdtlid": 1,
"jualid": 1,
"Item": {
"itemid": "22",
"itemdesc": "+ KEJU"
},
"Itemoid": 22
},
{
"jualdtlid": 2,
"jualid": 1,
"Item": {
"itemid": "",
"itemdesc": ""
},
"Itemoid": 87
},
Я хочу отфильтровать элемент по какому-либо пункту меню, но когда я добавляю элемент фильтра, он не фильтрует весь мой запрос
здесь результат отладки
SELECT * FROM [trnJualMst]
SELECT * FROM [trnJualDtl] WHERE ([trnjualmstoid] IN (1,2,3))
SELECT * FROM [mstItem] WHERE ([itemoid] IN (87,85,18,12,75,22,19,37,44,36,28,29,92,54,34)) AND (itemdesc like '%keju%')
Чтоя могу сделать так, чтобы я мог загрузить только тот элемент, который находится в фильтре?