1

下面是关联、保存调用和要保存的数据。它为 生成UPDATE查询Event,但没有生成查询来保存关联的EventInstance

EventInstance数据在事件的 beforeSave() 中创建。

它说它保存得很好 - 没有验证错误..等等。无论如何,我在 EventInstance 模型上没有验证数组。我也检查了,我的表没有任何问题,因为字段不允许 null ......等等。- 我通过将所有内容设置为允许为空来进行测试。

我不知道 - 这应该很简单 - 我之前已经做过 500 次了,但是对于这个,我显然遗漏了一些东西。

// Event model --------------------------
public $hasMany = array(
    'EventInstance' => array(
        'dependent' => true,
        'order'     => 'start ASC',
    ),
    ...

// Save call in Event model -------------
    $this->saveAll($data);

// $data ------------------------- 
'Event' => array(
    'id' => 'xxxxxxxx-65b4-4a75-ba4a-xxxxxxxxxxxx',
    'repeat_type' => '1',
    'repeat_interval' => '2',
    'repeat_weekdays' => 'ns',
    'repeat_on' => '1',
    'repeat_on_weekday' => '',
    'repeat_on_day' => '1',
    'repeat_end' => '',
    'timezone' => 'America/New_York',
    'times' => '',
    'modified' => '2013-11-02 01:07:27',
    'start' => '2013-11-03 01:36:00',
    'end' => '2013-11-10 05:36:00',
    'start_utc' => '2013-11-03 05:36:00',
    'end_utc' => '2013-11-10 10:36:00'
),
'EventInstance' => array(
    (int) 0 => array(
        'start' => '2013-11-05 01:11:00',
        'end' => '2013-11-05 05:36:00'
    ),
    (int) 1 => array(
        'start' => '2013-11-07 01:11:00',
        'end' => '2013-11-07 05:36:00'
    ),
    (int) 2 => array(
        'start' => '2013-11-09 01:11:00',
        'end' => '2013-11-09 05:36:00'
    ),
    (int) 3 => array(
        'start' => '2013-11-11 01:11:00',
        'end' => '2013-11-11 05:36:00'
    )
)
4

1 回答 1

3

事实证明,当您调用时保存关联数据的触发器在添加新关联数据时saveAll()已经过去。beforeSave()

所以 - 我只是将我beforeSave()的 s 更改为beforeValidate()s,并且它有效。

于 2013-11-02T15:11:35.653 回答