将修饰符与 Objection.js 关系映射一起使用
Using modifier with Objection.js relationmapping
我有四个tablevehicle_parts,part_pricing,labour_pricing和paint_pricing。 Vehicle_parts table 与剩余的 table 具有一对多关系。每个 table 都有一个字段 is_active
指示记录是否处于活动状态。因此,理想情况下,vehicle_parts table 中的每个部分在 part_pricing 中只有一个有效价格。
我正在使用 Objection.js 构建我的模型,如下所示 -
我有一个功能,我正在查询车辆零件模型以获取车辆零件以及相关价格,如下所示 -
我正在使用 withGraphFetched()
方法获取关系数据,我正在获取它。
我面临的问题是,当我获取车辆零件时,我只获取活动零件,但是我得到非活动价格以及相关数据中的活动价格。
我知道这可以使用修饰符来解决,但我不确定如何使用它。简而言之,我需要在使用 withGraphFetched()
.
获取数据时检查每个关系中的 is_Active
标志
感谢分享您的智慧。
您应该在建立关系时在模型中应用过滤器。
喜欢,
例如,
part_pricing: {
relation: BaseModel.HasManyRelation,
modelClass: path.join(__dirname, '/PartPricing'),
filter: (builder) => builder.where('is_active', true),
join: {
from: 'vehicle_parts.id',
to: 'part_pricing.vehicle_part_id',
},
}
我有四个tablevehicle_parts,part_pricing,labour_pricing和paint_pricing。 Vehicle_parts table 与剩余的 table 具有一对多关系。每个 table 都有一个字段 is_active
指示记录是否处于活动状态。因此,理想情况下,vehicle_parts table 中的每个部分在 part_pricing 中只有一个有效价格。
我正在使用 Objection.js 构建我的模型,如下所示 -
我有一个功能,我正在查询车辆零件模型以获取车辆零件以及相关价格,如下所示 -
我正在使用 withGraphFetched()
方法获取关系数据,我正在获取它。
我面临的问题是,当我获取车辆零件时,我只获取活动零件,但是我得到非活动价格以及相关数据中的活动价格。
我知道这可以使用修饰符来解决,但我不确定如何使用它。简而言之,我需要在使用 withGraphFetched()
.
is_Active
标志
感谢分享您的智慧。
您应该在建立关系时在模型中应用过滤器。
喜欢, 例如,
part_pricing: {
relation: BaseModel.HasManyRelation,
modelClass: path.join(__dirname, '/PartPricing'),
filter: (builder) => builder.where('is_active', true),
join: {
from: 'vehicle_parts.id',
to: 'part_pricing.vehicle_part_id',
},
}