Users、Comments、Pagesの3 つのモデルがあります。
ユーザー には多数の コメントがあり、コメントは ページに属し ます。
すべてのモデルがこのcontainable
動作を使用し、デフォルトはrecursive -1
です。
Pageモデルのフィールドを含む contentリクエストを使用してCommentsでfind()
クエリを呼び出すと、単一のクエリを使用して結果が正しく返され、自動的にPageテーブルがユーザーに結合されます。
Userモデル ( CommentとComment.Pageを含む )から同様のクエリを呼び出すと、結果は Comments をソースとするクエリであり、その後に関連するPageをソースするコメントごとのクエリが続きます。
JOIN の最適化を維持するためにモデルを構成する方法はありますか? 関連モデル ( Comments )での belongsTo 宣言は、ホスト モデル ( Users ) まで続くと想定しました。
アップデート
明確にする必要がありますが、私の質問は、実際のケーススタディの簡略化されたバージョンを使用していました。私が必要とする最小限の解決策には、この初期のモデル hasMany モデルの 属している モデル構造が含まれますが、チェーンの下流にある 1 つ以上の追加の属している モデルでの解決策も探しています (これは、LEFT JOIN を自動的に使用します。これは次のようになります)。実行可能)。