我在将“用户”表的外键保存在另一个名为“基本”的表中时遇到问题。我试图向用户询问一系列问题,每个完成的系列问题和用户 ID 都应该保存到相应的表中。
这是在模型中进行验证后保存我的数据的内容。验证成功,所有数据均已保存,但外键保存为 0。
public function pageone() {
if ($this->request->is('post')){
$this->request->data['Table1']['user_id'] = $this->Auth->user('id');
if ($this->User->saveAll($this->request->data)) {
$this->redirect(array('action'=>'pagetwo'));
} else {
$this->Session->setFlash('Your data have not been saved');
}
}
}
在我的模型中,我使用以下代码声明了外键:
var $name = 'Table1';
var $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
这应该声明外键,对吧?我的外键的列名称称为“user_id”。数据类型均为 INT。数据库方面是否还有其他问题?提前致谢!
更新:所以 - 我现在将我的用户 ID 隐藏在隐藏字段中。该字段将在我创建的任何其他字段中输入数据库(即使数据类型与 INT(11) 相同),但不会保存到名为“user_id”的字段中。例如,我可以将用户 ID 保存到名为 my_id 的字段中,但 user_id 仍然不行。我认为这排除了数据库问题,并且与我关联模型的方式有关。
请在用户模型中添加关系
var $hasOne = array(
'Basic' => array(
'className' => 'Basic',
'foreignKey' => 'user_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)