【问题标题】:Using modifier with Objection.js relationmapping将修饰符与 Objection.js 关系映射一起使用
【发布时间】:2021-03-07 18:32:58
【问题描述】:

我有四个表 vehicle_partspart_pricinglabour_pricingpaint_pricing。 Vehicle_parts 表与其余表具有一对多的关系。每个表都有一个字段is_active,指示记录是否处于活动状态。因此理想情况下,对于 vehicle_parts 表中的每个零件,part_pricing 中只有一个有效价格。

我正在使用 Objection.js 来构建我的模型,如下所示 -

我有一个功能,我正在查询车辆零件型号以获取车辆零件以及相关价格,如下所示 -

我正在使用withGraphFetched() 方法来获取关系数据,我得到了。

我面临的问题是,当我获得汽车零件时,我只获得了活跃的零件,但是我得到了非活跃的价格以及相关数据中的活跃价格。 我知道这可以使用修饰符来解决,但我不确定如何使用它。简单来说,我需要在使用withGraphFetched() 获取数据时检查每个关系中的is_Active 标志。

感谢您分享您的智慧。

【问题讨论】:

    标签: node.js objection.js


    【解决方案1】:

    您应该在设置关系时在模型中应用过滤器。

    喜欢, 例如,

    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',
        },
    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-06
      • 2018-01-26
      • 2017-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-14
      相关资源
      最近更新 更多