我有两个模型,Contract和TimeEntry。 TimeEntry模型以“小时”为列,并通过其“ contract_id”外键列引用合同。我想根据相关的时间条目返回合同的“总时数”,这似乎很简单。我以为这段代码行得通,
const TimeEntry = use('App/Models/TimeEntry')
class Contract extends Model {
static get computed() {
return ['totalHours']
}
...
getTotalHours({ id }) {
return await TimeEntry
.query()
.where('contract_id', id)
.sum('hours')
.fetch()
}
}
但是,它在“意外令牌”上出错,并说TimeEntry是意外令牌。
答案 0 :(得分:0)
您不应将fetch()与sum()一起使用。只需删除fetch()并以合同形式返回合同小时数即可。
const TimeEntry = use('App/Models/TimeEntry')
class Contract extends Model {
static get computed() {
return ['totalHours']
}
...
getTotalHours({ id }) {
return await TimeEntry
.query()
.where('contract_id', id)
.sum('hours')
}
}