0

モデルの関係に問題があり、hasMany を使用する必要があるか、他の手法を使用する必要があるかわかりません。調査を作成するためのアプリを作成しようとしています。私は次の関係を持っています:

Topics hasMany Quests
Quests hasMany Questoptions

しかし、TopicsController を介して Topic Model にアクセスしようとすると、Questoptions ではなく、Topics とリンクされた Quests のみを取得します。Quest Model にアクセスすると、すべての Quest とリンクされた Questoptions が表示されます。リンクされたクエストとリンクされたクエストオプションを持つすべてのトピックを 1 つの配列で取得するにはどうすればよいですか?

hasMany through は、多対多の状況ではないため、答えではないようです...

何か案は?

4

1 に答える 1

0

ええ、再帰は仕事をしますが、Containable Behaviour を使用するのが最善でしょう: http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html

基本的に、再帰を設定すると、Cake がそのモデルのすべてのリレーションシップに適用するレベルが設定されます。そのため、実際に必要以上のデータが返され、アプリが本来よりも遅くなる可能性があります。

Containable はよりきめ細かく、データベースへの特定の要求に対して、どの関連データを戻し、戻したくないかを正確に選択できます。

于 2013-03-10T06:51:09.017 に答える