2011-07-13 12 views
0

現在、私は解決できない複雑なCakePHP関連を持っています。 CakePHPで表の関連付けを表示できません

  • 紹介(ID、名前、電子メール)
  • List_Users

    • 一覧(ID、名前)(join_table:ID、referral_id、user_idの)
    • ユーザー(

      私はこれらのモデルを持っていますID、名前、電子メール)。

    関係は以下のとおりです。

    • リスト< - HABTM - > Lists_Users < - HABTM - リスト
    • リストhasManyの紹介

    belongsToの>ユーザー

  • 紹介*ユーザーです紹介者は、このリストに推奨する友人だけです。システムには多くの異なるリストが含まれています。

    私がしようとしているのは、showListがリストコントローラに機能し、このリストにリンクされているすべてのユーザーと参照を表示することです。私が最初にコントローラとしてこれを使用して試してみましたが、何の成功:

    function showList() { 
        $this->List->recursive = 2; 
        $users->List->User->find('all'); 
        $referrals->List->Referral->find('all'); 
        $this->set(compact('users','referral')); 
        $this->set('listas', $this->paginate()); 
    } 
    

    どのように私はおそらく、この関連の仕事をしないと、必要なすべてのデータを表示することができますか?

  • +0

    あなたは 'find'の結果を変数に代入していません。これは間違いですか、あなたのコードで間違いですか? – lxa

    +0

    間違いでした。私は問題を修正することができましたが、問題を解決して返信を投稿するために質問が投稿されてから8時間待つ必要があります。 –

    答えて

    0

    自分の頭を壊した後、それは私が自分の質問にawnserを見つけたようです!正しい関数は次のようになります:

    function showList($id = null) { 
        $this->List->recursive = 0; 
        if (!$id) { 
         $this->Session->setFlash(__('Invalid', true)); 
         $this->redirect(array('action' => 'index')); 
        } 
        else { 
        $this->set('list', $this->List->read(null, $id)); 
        $this->set('users', $this->List->User->find('all', 
         array(
          'fields' => array('id','name', 'email'), 
          'order' => 'name ASC' 
          ) 
         )); 
        $this->set('referrals', $this->List->Referral->find('all', 
         array(
          'fields' => array('id','name', 'email'), 
          'order' => 'name ASC' 
          ) 
         )); 
        } 
        $this->set('lists', $this->paginate()); 
    } 
    
    0

    あなたList_Usersモデルは(アンダースコアではない、複数のリスト、キャメルケース。)ListsUsersあるべき

    関連する問題