CakePHP拥有一个多个节省的关系

时间:2014-03-17 20:44:05

标签: cakephp

我需要一些关于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关系(在我的模型上),但它不起作用。我找到的唯一方法是直接在我的数据库中设置唯一键。

1 个答案:

答案 0 :(得分:0)

您必须在编辑期间设置个人行的ID。 另外在您的表中设置UNIQUE KEY id字段用户帐户ID