我试图通过与 CakePHP 的两个模型关系来检索一些数据。模型及其关联如下:
User hasOne Profile HABTM Skill
我希望find()
在对 User 模型进行操作时返回用户的技能,现在它没有返回。这是我对User
模型执行的 find 调用:
$this->paginate = array(
'conditions' => array(
'OR' => array(
'Profile.firstname LIKE' => "%$q%",
'Profile.lastname LIKE' => "%$q%"
)
)
);
它返回用户数据和个人资料数据,但不返回任何技能数据。我尝试设置recursive
为2
or 3
,但这也无济于事。我可以获得技能数据的唯一方法是,如果我find()
对Profile
模型运行,但我不能那样做。为了澄清,这里是相关模型及其关系:
// app/Model/User.php
class User extends AppModel {
public $hasOne = 'Profile';
}
// app/Model/Profile.php
class Profile extends AppModel {
public $belongsTo = 'User';
public $hasAndBelongsToMany = 'Skill';
// app/Model/Skill.php
class Skill extends AppModel {
public $hasAndBelongsToMany = 'Profile';
在检索用户数据时,任何人都可以帮助我获得用户技能吗?谢谢。