У меня есть модель Штамма, которая имеет отношение относится к с моделью образца, т.е. е. штамм принадлежит образцу.
Я настраиваю скрытое поле в методе StrainForm configure()
следующим образом:
$defaultId = (int)$this->getObject()->getSample()->getTable()->getDefaultSampleId();
$this->setWidget('sample_id', new sfWidgetFormInputHidden(array('default' => $defaultId)));
Всякий раз, когда я создаю новый штамм, $form->save()
терпит неудачу. Панель инструментов отладки показала, что сначала пытается сохранить объект Sample, и я не знаю почему.
Однако, если я получу идентификатор образца по умолчанию, используя таблицу, он будет работать как шарм:
$defaultId = (int)Doctrine_Core::getTable('Sample')->getDefaultSampleId();
$this->setWidget('sample_id', new sfWidgetFormInputHidden(array('default' => $defaultId)));
Мой вопрос здесь заключается в том, что может происходить с последовательностью методов getObject()->getSample()...
, которая заставляет StrainForm
думать, что он должен сохранить объект Sample
вместо Strain
.
Я пытался отладить xdebug, но не могу прийти к четкому выводу.
Есть мысли?
Спасибо !!