以下是关联,保存调用和转到保存的数据。它为UPDATE
生成Event
查询,但没有生成任何查询来保存关联的EventInstance
。
EventInstance
数据是在事件的beforeSave()中创建的。
它说它保存得很好 - 没有验证错误......等等。而且无论如何我在EventInstance模型上都没有验证数组。我也检查过,我的表没有任何问题,因为字段不允许null ...等。 - 我通过将所有内容设置为allow 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'
)
)
答案 0 :(得分:3)
事实证明,当saveAll()
添加新的关联数据时,您在调用beforeSave()
时保存关联数据的触发器已经过去了。
所以 - 我刚刚将beforeSave()
更改为beforeValidate()
s,它确实有效。