在CakePHP中生成和保存HABTM数据

时间:2015-06-26 13:43:34

标签: php cakephp has-and-belongs-to-many cakephp-2.7

编辑:Cake版本2.7

在我的应用程序中,我有一个与用户有HABTM关系的婚礼模型。 当我以管理员用户身份登录时,我希望能够添加一个新的婚礼,并通过这样做生成并保存另外两个用户以登录不同的角色。

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->数据阵列有关,但我还没有那么远。

任何帮助都将不胜感激。

0 个答案:

没有答案