我正在尝试使用ng-admin构建管理界面。
我正在使用reference
字段将一个主要实体(例如,Post)链接到具有多对一关系的另一个实体(Comment)(一个Post有很多注释)。
在帖子的listView()
上我必须显示每个帖子的最后一条评论,但正如我在relationships documentation of ng-admin中看到的那样我不能,因为在我的API中,外键不在主要内容上实体,但在次要实体上。
换句话说,我在评论实体中有post_id
,但我正在发帖listView()
,所以我无法访问任何评论。
此问题是否有解决方法?我可以从不包含引用键本身的实体引用外部实体吗?
我将添加一个简单的JSON以使示例更清晰。
// Post
{
id: 1,
title: 'post n1',
body: 'bla bla bla very cool'
}
// Comment
{
id: 1,
body: 'yo bro'
post_id: 1
}
谢谢
答案 0 :(得分:1)
根据个人经验并查看参考资料,通过使用nga.field('comments', 'referenced_list')
.targetEntity(comments)
.targetReferenceField('post_id')
(参见http://ng-admin-book.marmelab.com/doc/reference/Field.html#-referenced-list-field-type)看起来只是获得与您所寻找的结果相似的结果。第一句完全符合您的情况:
“referenced_list类型映射外键位于另一个实体中的一对多关系。”
使用它会是这样的:
listView
这可以为您提供与该帖子相关的评论列表。但是,由于这会返回一个列表,因此您无法将其与reference
一起使用(您无法在列表中嵌套列表)。
不幸的是,我认为没有办法使用{{1}}来获得类似的结果,因为引用使用对象的一个键进行搜索。