在已经规范化的 vuex-orm 数据库中插入数据
Inserting data in vuex-orm database that is already normalized
假设我收到的数据已经规范化,或者至少是关系。
这个数据如何插入到vuex-orm数据库中?
示例JSON数据:
{
"carmodel": [
{
"id": 1,
"title": "M3",
"manufacturer_id": 1
},
{
"id": 2,
"title": "a-class"
"manufacturer_id": 2
}
],
"manufacturer": [
{
"id": 1,
"title": "BMW"
},
{
"id": 2,
"title": "Mercedes"
}
]
}
厂商型号和车款是这样插入的:
Manufacturer.insert({ data: response.data.manufacturer })
CarModel.insert({ data: response.data.carmodel })
此示例模型将不起作用:
import { Model } from '@vuex-orm/core'
import Manufacturer from '@/models/Manufacturer'
export default class CarModel extends Model {
static entity = 'carModels'
static fields () {
return {
id: this.attr(null),
title: this.string(''),
manufacturer: this.hasOne(Manufacturer, 'manufacturer_id')
}
}
}
好的,我想我明白了。而不是 this.hasOne 我必须使用 belongsTo 并使用来自同一模型的 manufacturer_id:
import { Model } from '@vuex-orm/core'
import Manufacturer from '@/models/Manufacturer'
export default class CarModel extends Model {
static entity = 'carModels'
static fields () {
return {
id: this.attr(null),
title: this.string(''),
manufacturer_id: this.attr(null),
manufacturer: this.belongsTo(Manufacturer, 'manufacturer_id')
}
}
}
假设我收到的数据已经规范化,或者至少是关系。 这个数据如何插入到vuex-orm数据库中?
示例JSON数据:
{
"carmodel": [
{
"id": 1,
"title": "M3",
"manufacturer_id": 1
},
{
"id": 2,
"title": "a-class"
"manufacturer_id": 2
}
],
"manufacturer": [
{
"id": 1,
"title": "BMW"
},
{
"id": 2,
"title": "Mercedes"
}
]
}
厂商型号和车款是这样插入的:
Manufacturer.insert({ data: response.data.manufacturer })
CarModel.insert({ data: response.data.carmodel })
此示例模型将不起作用:
import { Model } from '@vuex-orm/core'
import Manufacturer from '@/models/Manufacturer'
export default class CarModel extends Model {
static entity = 'carModels'
static fields () {
return {
id: this.attr(null),
title: this.string(''),
manufacturer: this.hasOne(Manufacturer, 'manufacturer_id')
}
}
}
好的,我想我明白了。而不是 this.hasOne 我必须使用 belongsTo 并使用来自同一模型的 manufacturer_id:
import { Model } from '@vuex-orm/core'
import Manufacturer from '@/models/Manufacturer'
export default class CarModel extends Model {
static entity = 'carModels'
static fields () {
return {
id: this.attr(null),
title: this.string(''),
manufacturer_id: this.attr(null),
manufacturer: this.belongsTo(Manufacturer, 'manufacturer_id')
}
}
}