ng-admin 中引用实体的外键
Foreign key on reference entity in ng-admin
我正在尝试使用 ng-admin 构建管理界面。
我正在使用 reference
字段来 link 一个主要实体(例如 Post)到具有多对一关系(一个 Post 有很多评论)。
在 Post 的 listView()
上,我必须显示每个 Post 的最后一条评论,但正如我从 relationships documentation of ng-admin 中看到的那样,我不能,因为在我的 API 中,外键不在主要实体上,而是在次要实体上。
换句话说,我在评论实体中有 post_id
,但我正在做 Post 的 listView()
,所以我无法访问任何评论。
这个问题有解决方法吗?我可以从本身不包含引用键的实体引用外部实体吗?
我将添加一个简单的 JSON 以使示例更清楚。
// Post
{
id: 1,
title: 'post n1',
body: 'bla bla bla very cool'
}
// Comment
{
id: 1,
body: 'yo bro'
post_id: 1
}
谢谢
根据个人经验和查看参考资料,似乎只有使用 referenced_list
(请参阅 http://ng-admin-book.marmelab.com/doc/reference/Field.html#-referenced-list-field-type)才能获得与您正在寻找的结果相似的结果。第一句话完全符合你的情况:
"The referenced_list type maps a one-to-many relationship where the foreign key is located in another entity."
使用它会是这样的:
nga.field('comments', 'referenced_list')
.targetEntity(comments)
.targetReferenceField('post_id')
这应该会为您提供与该 post 相关的评论列表。但是,由于此 returns 是一个列表,因此您不能将它与 listView
一起使用(您不能将列表嵌套在列表中)。
不幸的是,我认为没有任何方法可以使用 reference
来获得类似的结果,因为引用使用对象的键之一进行搜索。
我正在尝试使用 ng-admin 构建管理界面。
我正在使用 reference
字段来 link 一个主要实体(例如 Post)到具有多对一关系(一个 Post 有很多评论)。
在 Post 的 listView()
上,我必须显示每个 Post 的最后一条评论,但正如我从 relationships documentation of ng-admin 中看到的那样,我不能,因为在我的 API 中,外键不在主要实体上,而是在次要实体上。
换句话说,我在评论实体中有 post_id
,但我正在做 Post 的 listView()
,所以我无法访问任何评论。
这个问题有解决方法吗?我可以从本身不包含引用键的实体引用外部实体吗?
我将添加一个简单的 JSON 以使示例更清楚。
// Post
{
id: 1,
title: 'post n1',
body: 'bla bla bla very cool'
}
// Comment
{
id: 1,
body: 'yo bro'
post_id: 1
}
谢谢
根据个人经验和查看参考资料,似乎只有使用 referenced_list
(请参阅 http://ng-admin-book.marmelab.com/doc/reference/Field.html#-referenced-list-field-type)才能获得与您正在寻找的结果相似的结果。第一句话完全符合你的情况:
"The referenced_list type maps a one-to-many relationship where the foreign key is located in another entity."
使用它会是这样的:
nga.field('comments', 'referenced_list')
.targetEntity(comments)
.targetReferenceField('post_id')
这应该会为您提供与该 post 相关的评论列表。但是,由于此 returns 是一个列表,因此您不能将它与 listView
一起使用(您不能将列表嵌套在列表中)。
不幸的是,我认为没有任何方法可以使用 reference
来获得类似的结果,因为引用使用对象的键之一进行搜索。