Возможно ли получить модель, которая пытается сохранить данные в связанной модели в транзакции saveAll. Например, у пользователя много целей, и я звоню;
$this->User->saveAll($data);
Могу ли я получить пользователя модели в классе Goal Model с помощью некоторого предопределенного атрибута, метода или механизма?
Спасибо за вашу помощь заранее,
Roland.
Edit:
Предположим гипотетическую ситуацию, когда у пользователя есть картинки с моделью изображений и сообщениями (блогами) с соответствующей моделью. Обе они могут быть прокомментированы. Поэтому вместо того, чтобы создавать отдельную модель комментариев для каждой из этих моделей, я создаю одну центральную модель комментариев. Ассоциация может выглядеть так:
//In the Picture model
var $hasMany = array(
`` 'Comment' => array(
'className' => 'Comment',
'foreignKey' => 'picture_id',
'conditions' => array('Comment.objectType' => 'picture')
)`
);
Ассоциация для модели Post будет аналогичной, с той лишь разницей:
'conditions' => array('Comment.objectType' => 'post')
С этой структурой, если бы я запросил любую из этих Моделей, их соответствующие комментарии будут получены из таблицы БД с использованием поля objectType.
Если бы я сделал что-то вроде;
$this->Picture->saveAll($data);
или
$this->Post->saveAll($data);
с хорошо структурированным массивом $ data и содержащим часть «Комментарии» для сохранения, в какой-то момент времени во время транзакции сохранения данные будут сохранены в таблице комментариев через модель «Комментарий».
Мне нужно знать, что именно модель Picture пытается сохранить комментарий в методе beforeSave модели Comment, т.е.
//In the Comment mode
beforeSave() {
//Post model is trying to save a comment here
}