В настоящее время я пытаюсь создать элементы формы в Symfony на основе модели приложения.Я знаю, что приведенный ниже код недействителен, но я надеюсь, что он показывает, что я пытаюсь сделать.Я действительно ударил его об стену ... Кажется, я не могу понять, как использовать библиотеку форм для этого.
$formElementArray = FormElementsTable::getInstance()->getElementList($advertiserID);
$formElements = array();
foreach ($formElementArray as $formElement)
{
$formElements['name'] . => new sfWidgetForm.$formElements['type'] . (array('label' => $formElements['label'])),
}
$this->setWidgets(array($formElements));
Сейчас я обеспокоен тем, что этоэто невозможно, и я должен отказаться от этой идеи, возможно, написать компонент Symfony, который создает формы из модели.На самом деле это было бы довольно просто, но я полагаю, что я просто хотел бы оставаться как можно глубже в рамках по нескольким причинам.
Спасибо за любой вклад.
edit: немного большеинформация ...
Цель состоит в том, чтобы иметь возможность заполнять форму любыми элементами, которые появляются в определенной строке базы данных.Например, возможно, рекламодателю X нужно поле имени, пола и цвета волос, а рекламодателю - поле имени, пола, веса и цвета глаз.Мне нужно иметь возможность создавать их на лету, в идеале с доступными функциями форм Symfony.
Решение
Вот как конфигурируется форма ...
public function configure()
{
$elements = Doctrine_Core::getTable('FormFields')->getElementsById(0);
foreach ( $elements as $element )
{
$widgetName = $this->getWidgetName($element);
$args = $this->getConstructorArguments($element);
$widgets[$element->name] = new $widgetName($args);
$validatorName = 'sfValidatorString';
$validators[$element->name] = new $validatorName(array('required' => false));
}
$this->setWidgets($widgets);
$this->setValidators($validators);
}
Просто, верно?Я не должен был слишком много думать об этом.