2014-03-30 127 views
1

我有一個CakePHP中的「用戶」模型與多個其他模型相關聯。CakePHP包含不工作

public $belongsTo = array(
     'Reference' => array(
      'className' => 'Reference', 
      'foreignKey' => 'reference_id', 
     ), 
     'SecurityQuestion' => array(
      'className' => 'SecurityQuestion', 
      'foreignKey' => 'question_id', 
     ) 
    ); 

    public $hasMany = array(
     'UserReview' => array(
      'className' => 'UserReview', 
      'foreignKey' => 'user_id', 
      'dependent' => true, 
     ), 
     'UserLicense' => array(
      'className' => 'UserLicense', 
      'foreignKey' => 'user_id', 
      'dependent' => true, 
     ), 
     'UserCertification' => array(
      'className' => 'UserCertification', 
      'foreignKey' => 'user_id', 
      'dependent' => true, 
     ), 
     'UserFavorite' => array(
      'className' => 'UserFavorite', 
      'foreignKey' => 'user_id', 
      'dependent' => true, 
     ), 
    } 

下面的代碼返回所有模型。

$this->User->find('first', array('conditions' => array('User.id' => 15))); 

$this->User->find('first', array('contain' => 'UserProfile','conditions' => array('User.id' => 15))); 

我想返回用戶和用戶配置,但它再次回到所有關聯。

請幫忙。

+2

嘗試' '包含'=>陣列( '用戶配置')'。 **編輯:**您似乎實際上沒有與UserProfile定義的關聯...? –

+1

您是否按照書本說明正確設置了可容納和遞歸? – Dave

+0

做你的模型其實actsAs可容納? – arilia

回答

3

添加到您的AppModel.php

public $actsAs = array('Containable'); 

並設置與用戶配置一個關聯。我想這將是$ hasOne關係..

+0

$ actA不正確。它應該是$ actsAs [Cake Docs](https://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html) – styks

+0

謝謝@凱爾文 –

2

你也可以載入 '中容納' 對飛

$this->User->Behaviors->load('Containable'); 
$this->User->find('first', array('contain' => 'UserProfile','conditions' => array('User.id' => 15)));