Ниже приведена ассоциация, вызов сохранения и данные, которые будут сохранены. Он генерирует запрос UPDATE
для Event
, но нет запросов, сгенерированных для сохранения связанных EventInstance
.saveAll() не сохраняет связанные данные при создании в beforeSave
Данные EventInstance
создаются в событии beforeSave().
В нем говорится, что он экономит штраф - никаких ошибок проверки..вт. И в любом случае у меня нет массива проверки в модели EventInstance. Я также проверил, и моя таблица не имеет никаких проблем, поскольку поля не допускают null ... и т. Д. - Я протестировал, установив все так же, как и 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'
)
)
Единственное, что я вижу, это отсутствие ')' для вашего 'public $ hasMany = array (' (как закрытие), которое вы показываете '...', это то, что там вместе с другой информацией, не размещенной? –
Вы используете innodb как механизм хранения? –
@ Fred-ii- это не синтаксическая ошибка - просто не хотелось писать все мои ассоциации здесь. – Dave