protected function prepareFormForPage(dmForm $form) { if (!($page = $this->serviceContainer->getParameter('context.page'))) { return $form; } if (!($pageRecord = $page->getRecord())) { return $form; } foreach ($form->getWidgetSchema()->getFields() as $widgetKey => $widget) { $widgetModel = $widget->getOption('model'); if ($widget instanceof sfWidgetFormDoctrineChoice && $pageRecord instanceof $widgetModel) { $form->changeToHidden($widgetKey)->setDefault($widgetKey, $pageRecord->getPrimaryKey()); } } }