0

我在我的数据库中采用了某种关系系统,当我开始编写模型时,我遇到了一些问题。首先,也许我会展示我的数据库模式。

##USERS##
id

##CVS##
id
user_id

##SKILLS##
id
cv_id

user hasOne cv
cv belongsTo user
cv hasMany skill
skill belongsTo cv

这个解决方案似乎是正确的,但是当我试图在技能表中获取 cv_id 时,我不得不写这样的东西:

$cv_id = $this->Skill->find('first', array('user_id' => $this->Auth->user('id')));
$this->request->data['Skill']['cv_id'] = $cv_id['CV']['id'];

我发现它非常混乱的解决方案。有没有更好的方法在 cakePHP 中获取这些信息,或者我应该更改表之间的关系?在这种情况下我该怎么办?

4

1 回答 1

0

您可以使用以下代码:

$this->Skill->virtualFields['cvid'] = 'CV.id';
$cv_id = $this->Skill->find('first', array('user_id' => $this->Auth->user('id')));
$this->request->data['Skill']['cv_id'] = $cv_id['Skill']['cvid'];

---------------------- OR -----------------------------

$this->Skill->virtualFields['cv_title'] = 'CV.title';
$cv_id = $this->Skill->find('first', array('user_id' => $this->Auth->user('id')));
$this->request->data['Skill']['cv_title'] = $cv_id['Skill']['cv_title'];

---------------------- OR -----------------------------

$this->Skill->virtualFields['cv_title'] = 'CV.title';
$this->request->data = $this->Skill->find('first', array('user_id' => $this->Auth->user('id')));

您可以使用上述语法动态添加虚拟字段。

这是解释。希望它对你有用。

于 2012-07-16T07:14:11.333 回答