如何确定Bookshelf { withRelated: ['relation'] }
关系是否尚未加载或是否为空?
根据Bookshelfjs文件:
相关方法返回在模型上的关系哈希上加载的指定关系,或调用关联的关系方法并将其添加到关系哈希(如果存在且尚未加载)。 Model#related
如果将fetch
提供给debug: true
,则在将related('relation')
设置为Knex时可以看到输出关系,如果存在,则related('relation')
包含模型。< / p>
但是,如果没有相关模型,withRelated
的返回值似乎与不给出related('relation').fetch()
选项时的返回值相同,即。它不能用于确定数据是否先前已加载。多次调用{{Expressions}}
会导致尽可能多的SQL查询。
我做了一些根本错误的事情,还是我真的需要为这些关系建立自己的缓存?我需要过滤关系,并希望模型实例为过滤后的数据提供良好的getter,而不必在每次调用时从数据库中重新获取关系。
答案 0 :(得分:0)
没有官方方式,请参阅GitHub issue。
但如果你愿意,可以用官方支持的方式检查:
modelInstance.relations[relationName]
// e.g.
user.relations.organization // undefined if not fetched yet