在cakephp 2中,我有一个表单,可以在公司和用户表中创建新记录。
我的问题是它保存到两个表中但在Umuser表中它不会散列密码或id密钥。它似乎根本不会调用任何Umuser模型。这是一个保存之前,它没有调用它。
public function beforeSave() {
if (isset($this->data[$this->alias]['password'])) {
$this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
}
return true;
}
Umuser位于puging / Usermin / Models目录中。
公司控制器保存数据:
public function add() {
if ($this->request->is('post')) {
$this->Company->create();
if ($this->Company->saveAll($this->request->data, array('validate'=>'first'))) { // Should ensure both sets of model data get validated
$this->Session->setFlash(__('The company has been saved'));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The company could not be saved. Please, try again.'));
}
}
}
不明白为什么它会保存数据但绕过Umuser模型来执行此操作。
答案 0 :(得分:1)
$ this-> data [$ this-> alias] ['password'])这里可能有问题。 尝试做这样的事情:
public function beforeSave() {
if (isset($this->data[$this->alias]['password'])) {
$this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
return true;
}else{
return false; // if $this->data[$this->alias]['password'] is not set, don't save the model
}
}
如果公司已保存,则在此处发布