编辑:蛋糕版本 2.7
在我的应用程序中,我有一个与用户有 HABTM 关系的婚礼模型。当我以管理员用户身份登录时,我希望能够添加一个新的婚礼,并通过这样做生成并保存 2 个额外的用户以使用不同的角色登录。
public $hasAndBelongsToMany = array(
'User' => array(
'className' => 'User',
'joinTable' => 'weddings_users',
'foreignKey' => 'wedding_id',
'associationForeignKey' => 'user_id',
'unique' => 'keepExisting',
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
)
);
是我的婚礼模型,并被复制回用户模型。
当我运行基本的创建操作时,我得到了这个:
Array (
[Wedding] => Array
(
[name] => james and sally
[ceremony_date] => Array
(
[month] => 06
[day] => 26
[year] => 2015
[hour] => 02
[min] => 29
[meridian] => pm
)
[venue_id] => 1
)
[User] => Array
(
[User] =>
)
)
然后我可以使用 $this->Wedding->User->create() 方法创建其他用户并将它们放入数组中。婚礼保存,用户保存(有更多问题)但关联不保存。即使使用
$this->Wedding->saveAssociated($saveData)
方法。
附加问题 beforeSave 函数似乎没有被调用,我的用户使用空白密码进入数据库。
public function beforeSave($options = array()) {
if (isset($this->data[$this->alias]['password'])) {
$passwordHasher = new BlowfishPasswordHasher();
$this->data[$this->alias]['password'] = $passwordHasher->hash(
$this->data[$this->alias]['password']
);
}
return true;
}
我认为这与我的 $this->data 数组有关,但我还没有走到那一步。
任何帮助,将不胜感激。