我可以将非持久字段添加到模型中吗?

时间:2017-03-02 19:50:07

标签: objection.js

是否建议将非持久属性添加到Objection模型对象,以使其不会覆盖预定义属性?

1 个答案:

答案 0 :(得分:2)

异议模型具有virtualAttributes字段。来自文档:

  

虚拟值不会写入数据库。只有“外部”JSON格式才会包含它们。

重要的是要注意这些是函数,而不仅仅是模型属性。

文档示例:

class Person extends Model {
  static get virtualAttributes() {
    return ['fullName', 'isFemale'];
  }

  fullName() {
    return `${this.firstName} ${this.lastName}`;
  }

  get isFemale() {
    return this.gender === 'female';
  }
}

const person = Person.fromJson({
  firstName: 'Jennifer',
  lastName: 'Aniston',
  gender: 'female'
});

console.log(person.toJSON());
// --> {"firstName": "Jennifer", "lastName": "Aniston", "isFemale": true, "fullName": "Jennifer Aniston"}