Я набрал большую часть этого вопроса, а потом решил для себя! Я думал, что все равно добавлю q, так как думаю, что это представляет общий интерес.
Сначала я думал, что TestEvent должен получить два вызова - один для себя, а другой для его зависимого объекта. Но сохранение в TestEvent не влияет на TestOrganiser, так как отношение идет от test_event к test_organiser.
Итак, поведение Propel правильное; Поскольку test_organiser зависит от test_event, оба уведомляются, если первый изменен. Это можно представить как неиерархическое родительско-дочернее отношение (у test_event есть внешний ключ, то есть «родительский»).
Мое решение для фильтрации связанных уведомлений строк этого типа (и вообще неизмененных строк) состоит в том, чтобы просто сделать это в пользовательском классе предков строк:
public function preUpdate(PropelPDO $con = null)
{
// Ignore (related) rows with no changes
if (!$this->isModified())
{
return true;
}
// Rest of handling code here...
}