Model: fix eager-loaded relation loading from static query
This commit is contained in:
parent
e57819d318
commit
b7bfb3e153
@ -174,10 +174,24 @@ export abstract class Model<T extends Model<T>> extends AppClass implements Bus
|
||||
builder.field(field.databaseKey)
|
||||
})
|
||||
|
||||
for ( const relation of this.prototype.with ) {
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
builder.with(relation)
|
||||
if ( Array.isArray(this.prototype.with) ) {
|
||||
// Try to get the eager-loaded relations statically, if possible
|
||||
for (const relation of this.prototype.with) {
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
builder.with(relation)
|
||||
}
|
||||
} else if ( this.constructor.length < 1 ) {
|
||||
// Otherwise, if we can instantiate the model without any arguments,
|
||||
// do that and get the eager-loaded relations directly.
|
||||
const inst = Container.getContainer().make<Model<any>>(this)
|
||||
if ( Array.isArray(inst.with) ) {
|
||||
for (const relation of inst.with) {
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
builder.with(relation)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
builder.withScopes(this.prototype.scopes)
|
||||
|
Loading…
Reference in New Issue
Block a user