2017-05-31 26 views
1

如何確定Bookshelf hasMany關係是否根本沒有被加載或只是空的?書架關係檢測如果提取

根據Bookshelfjs文檔:

的相關方法返回加載在模型上的關係散列指定的關係,或者調用相關聯繫方法,如果存在的話,有沒有把它添加到關係哈希尚未加載。 Model#related

如果給{ withRelated: ['relation'] }fetch,關係加載爲可如果設置debug: true到Knex可以看到輸出,並且related('relation')包含了型號,如果他們存在。

但是,如果沒有相關車型的related('relation')的返回值似乎是一樣的,當不給withRelated選項可言,即。它不能用於確定數據是否先前已加載。多次調用related('relation').fetch()會產生儘可能多的SQL查詢。

我在做一些根本性錯誤或者我真的只需要爲關係構建自己的緩存?我有我需要過濾的關係,並希望模型實例具有良好的過濾數據獲取器,而不必在每次調用時都從數據庫中重新獲取關係。

回答

0

有沒有官方的方式,請參閱GitHub issue


但是,如果你願意,你可以在不正式支持的方式檢查:

modelInstance.relations[relationName] 
// e.g. 
user.relations.organization // undefined if not fetched yet