2

我目前正在尝试弄清楚如何通过关系保存 hasMany。

我的桌子是:

牌: id, name

颜色: id, name, color

card_colors(与模型 CardColor 关联): id, card_id, color_id, cost

hasMany 通过关联:

Card hasMany CardColor
Color hasMany CardColor
CardColor belongsTo Card
CardColor belongsTo Color

Card::beforeSave()中,我将重建我的$data变量,使其具有以下结构:

array(
'Card' => array(
    'name' => 'theCard',
    'CardColor' => array(
        array(
            'card_id' => 4,
            'color_id' => 5,
            'cost' => 2
        ),
        array(
            'card_id' => 5,
            'color_id' => 2,
            'cost' => 3
        )
    )
)
)

但是,我不知道如何获取我当前插入的卡的 card_id。有没有更Cake-y 的方式来通过关联保存hasMany(例如在保存时以某种方式自动获取卡ID)?

4

1 回答 1

1

尝试这个:

  • 在模型中使用 $this->Card-create() // 或仅使用 $this->create()
  • 在 Card::beforeSave() 中,不要设置索引 CardColor[i][card_id]
  • 以这种方式保存: $this->saveAssociated($data)
于 2013-05-22T21:40:22.010 回答