我需要一些关于hasOne关系的帮助,该关系使用相同的外键保存多个记录。关系是:
Personal
belongsTo UserAccount
UserAccount
hasOne Personal
在名为personals
的表中,我将外键放到user_accounts
,称为user_account_id
,只有在我的数据库中手动选择此外键时,限制才有效。独一无二。
我认为CakePHP可以管理这种情况。或者也许我错过了什么?
感谢您的帮助!
修改
在我的添加表单中,我有一行echo $this->Form->input('UserAccount.id', array('type' => 'hidden', 'value' => $useraccount_id));
,其中$useraccount_id
取自UserAccountsController
:
public function new_personal() {
$current_user = $this->Auth->user('id');
$current_account = $this->UserAccount->find('first', array(
'conditions' => array('UserAccount.user_id' => $current_user)));
$this->set('useraccount_id', $current_account['UserAccount']['id']);
if ($this->request->is('post')) {
if (!empty($this->request->data)) {
unset($this->UserAccount->Personal->validate['user_account_id']);
$this->UserAccount->saveAssociated($this->request->data);
$this->Session->setFlash(__('Ok'));
return $this->redirect(array('action' => 'index'));
}
$this->Session->setFlash(__('Error'));
}
}
我还尝试将unique => true
属性添加到hasOne和belongsTo关系(在我的模型上),但它不起作用。我找到的唯一方法是直接在我的数据库中设置唯一键。
答案 0 :(得分:0)
您必须在编辑期间设置个人行的ID。 另外在您的表中设置UNIQUE KEY id字段用户帐户ID