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 関数が呼び出されないようで、ユーザーが空白のパスワードで DB に入力されます。

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