2017-03-01 97 views
0

你好我想从HasMany中的多个表中选择数据,但它不工作。这里是我的代码HasMany Multiple选择不工作Cakephp

class UserInfo extends AppModel 
{ 
    public $useTable = 'user_info'; 
    public $primaryKey = 'user_id'; 


    public $belongsTo = array(
     'User' => array(
      'className' => 'User', 
      'foreignKey' => 'user_id', 
      'type' => 'RIGHT', 
      'fields' => array('User.user_id','User.email','User.active') 
     ) 


    ); 
    public $hasMany = array(
     'UserCategory' => array(
      'className' => 'UserCategory', 
      'foreignKey' => 'user_id', 
      'dependent' => true, 
      'conditions' => array('user_id = UserCategory.user_id') 
      //'order' => 'UserCategory. DESC' 

     ) 


); 



    public function getUserDetails($user_id){ 
     $this->Behaviors->attach('Containable'); 
     return $this->find('all', array(
      'conditions' => array(
       'UserInfo.user_id' => $user_id 
      ), 
      'contain' => array(
       'User', 'UserCategory.Category', 

      ) 

     )); 

    } 

如果我尝试从有它user_id这样

public $hasMany = array(
      'UserCategory' => array(
       'className' => 'UserCategory', 
       'foreignKey' => 'user_id', 
       'dependent' => true, 
       'conditions' => array('user_id = UserCategory.user_id') 
       //'order' => 'UserCategory. DESC' 

      ), 

      'Skill' => array(
       'className' => 'Skill', 
       'foreignKey' => 'user_id', 
       'dependent' => true 


      ) 
    ); 

它不取另一个表中提取数据。当我运行SQL转储。它根本不运行查询。所以,含义,我无法从技能

回答

0

获取数据,我建议你在CakePHP中2仔细阅读文档的containable总之,当你使用中可容纳这样的:

'contain' => array(
    'User', 'UserCategory.Category', 
) 

你可以在其中加入您想要的模型像你的情况这将帮助你:

'contain' => array(
    'User', 'UserCategory.Category', 'Skill' 
) 

中可容纳帮助您查找()过滤数据按您的要求。

+0

再次感谢您 – hellosheikh