1

私はどこでもこれを見つけようとしましたが、できません。これが私の問題です:

次のようにモデルが関連付けられているとしましょう。

  1. 学生(多くのメンバーシップを持っています)
  2. メンバーシップ(Student and TeacherCourse に属します)
  3. TeacherCourse (Teacher と Course に属します)
  4. Teacher (TeacherCourses が多数あります)
  5. コース(多くの TeacherCourses があります)

すべてのメンバーシップをビューに送信するために使用membershipsControllerすると、たとえば$membership['Membership']['id']、またはそうでは$membership['TeacherCourse']['id']ありません$membership['TeacherCourse']['Teacher']['id']...

つまり、Memberships と TeacherCourse は直接関連付けられているため、情報を取得できます。私の質問は、教師やコースに関する情報を直接取得するにはどうすればよいですか?

4

2 に答える 2

1

モデルの再帰レベルを上げてより深い関連付け ( $this->Membership->recursive2 または 3 に設定) を取得することもできますが、一般的には、取得する関連付けを選択できるようにContainable動作を使用することをお勧めします。たとえば、これは関連付けられた TeacherCourse および Teacher モデルを持つメンバーシップを返します。

$membership = $this->Membership->find('all', array(
    'contain'=>array(
        'TeacherCourse'=>array(
            'Teacher'=>array()
        ),
    ));

http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.htmlにある Containable 動作の完全なドキュメントも参照してください。

于 2012-09-20T15:29:26.783 に答える