我与透明阿多尼斯建立了一对多的关系,当我尝试获取具有特定B相关数据(A hasMany B)的A数据时,它显示了此错误:
无法解构与属性相关的'undefined'或'null'查询。
我该如何解决?
通常我一直试图从A表中获取所有数据都没有成功, 然后我尝试从B表中获取数据,而A数据为空
(我使用adonisjs)
//model code
class Device extends Model {
properties () {
this.hasMany('App/Models/Property');
}
}
class Property extends Model {
devices() {
return this.belongsTo('App/Models/Device');
}
}
// migration code
class DeviceSchema extends Schema {
up () {
this.create('devices', (table) => {
table.increments();
table.string('nome');
table.string('photo');
table.text('descricao');
table.timestamps();
});
}
down () {
this.drop('devices');
}
}
class PropertySchema extends Schema {
up () {
this.create('properties', (table) => {
table.increments();
table.string('icon');
table.string('nome', 40);
table.integer('deviceId')
.unsigned()
.notNullable()
.references('id')
.inTable('devices')
.onUpdate('CASCADE')
.onDelete('CASCADE');
table.timestamps();
});
}
down () {
this.drop('properties')
}
}
// controller code to get data
const Dev = await Device
.query()
.limit(4)
.with('properties')
.fetch();
console.log(Dev.toJSON())
我需要所有设备数据以及它们的特定属性数据。
答案 0 :(得分:0)
问题在这里:
class Device extends Model {
properties () {
this.hasMany('App/Models/Property');
}
}
您需要在关系函数调用中添加“ return”:
class Device extends Model {
properties () {
--->> return this.hasMany('App/Models/Property');
}
}
AdonisJs文档:https://adonisjs.com/docs/4.1/relationships