CakePHP – одновременное обновление нескольких таблиц

У меня есть приложение Cakephp 1.3, и у меня есть следующая настройка:

Таблица, названная выбросами с этой моделью:

class Emission extends AppModel { var $name = 'Emission'; var $displayField = 'name'; } 

И таблица с названием «эмиссионные сообщения» с этой моделью:

 class EmissionMessage extends AppModel { var $name = 'EmissionMessage'; var $belongsTo = array ( 'Emission' => array ( 'className' => 'Emission', 'foreignKey' => 'emission_id' ) ); } 

В таблице эмиссионной_измещения есть поле, называемое эмиссионным кодом для внешнего ключа.

Когда я создаю новый экземпляр эмиссии, мне нужно создать новый экземпляр эмиссионного сообщения одновременно, то есть: в том виде, в котором я бы ввел новую эмиссию в свою базу данных, мне понадобятся входные данные излучения, связанные с этим то же излучение. То же самое относится к форме редактирования.

Я думаю, что я сделал это неправильно, потому что я могу «вручную» вставить в таблицу emission_message с соответствующим идентификатором после создания эмиссии, но я предполагаю, что это неправильный путь и что cakePHP должен делать это автоматически. Я не знаю, как назвать мои данные в форме, чтобы информация сохранялась должным образом или если мои модели ошибочны, и поэтому она не работает.

РЕДАКТИРОВАТЬ:

Чтобы сделать вещи более ясными: Emission и EmissionMessage находятся в отношениях один к одному, добавив, что hasOne to Emissions заставил его работать на полпути, теперь я могу сохранить поля, используя:

  echo $this->Form->input('EmissionMessage.field'); 

Но когда я пытаюсь обновить одну и ту же запись, действие edit () просто сохраняет данные в новой строке (с внешним ключом, но в новой строке вместо обновления предыдущего)

Чтобы сохранить поля, которые я использую:

 $this->Emission->saveAll($this->data) 

И в действиях edit () и add () (вставка и обновление)

EDIT 2: Кажется, что скрытый ввод с идентификатором таблицы EmissionMessage сделал трюк (раньше я не делал этого правильно, как только я исправил это, он работал нормально), поскольку этот ответ подсказывает: saveAll () вставляет новую строку вместо обновления

Мне очень странно, что мне нужно добавить этот скрытый ввод, но, по крайней мере, это решает проблему.