您好我正在尝试从HasMany中的多个表中选择数据,但它无效。这是我的代码
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 dump时。它根本不运行查询。所以意味着我无法从技能表
中获取数据答案 0 :(得分:0)
我建议你仔细阅读cakephp 2中containable的文档。总之,当你使用可包含的内容时:
'contain' => array(
'User', 'UserCategory.Category',
)
您可以在其中添加所需的模型,就像您的情况一样,这将对您有所帮助:
'contain' => array(
'User', 'UserCategory.Category', 'Skill'
)
Containable有助于根据您的要求过滤find()数据。