2

编辑:蛋糕版本 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 数组有关,但我还没有走到那一步。

任何帮助,将不胜感激。

4

0 回答 0