Bookshelf hasMany
の関係が全くロードされていないか、ブックシェルフの関係がフェッチされた場合に検出する
Bookshelfjsドキュメントによれば:
関連する方法は、モデルに関係ハッシュにロードされ、指定の関係を返し、または関連する関連メソッドを呼び出し、1つは存在していなければ関係ハッシュに追加まだロードされています。 Model#related
fetch
に{ withRelated: ['relation'] }
を与える場合は、関係がKnexにdebug: true
を設定した場合の出力を見ることができるようにロードされ、それらが存在する場合related('relation')
は、モデルが含まれています。
しかし、関連するモデルがない場合、related('relation')
の戻り値は、withRelated
オプションをまったく与えない場合と同じように見えます。データが以前にロードされたかどうかを判断するために使用することはできません。 related('relation').fetch()
を複数回呼び出すと、多くのSQLクエリが発生します。
私は基本的に何か間違っているのですか、それとも、関係のために自分のキャッシュを構築する必要がありますか?私はフィルタリングする必要があるリレーションを持っており、モデリングされたインスタンスがフィルタリングされたデータに対して素敵なゲッタを持つようにしたいと思います。