Symfony динамические формы

Я запустил с формы, которая сделана вручную из-за, это - сложность (это - измененная форма JavaScript, с поддающимися сортировке частями, и т.д.). Проблема состоит в том, что теперь я должен сделать проверку, и это - общая путаница, чтобы сделать это с нуля в действии с помощью sfValidator* классы.

Так, я думаю, чтобы сделать это с помощью sfForm так, чтобы моя проверка формы и обработка ошибок могли быть сделаны более легче и таким образом, я могу снова использовать эту форму для страниц Edit и Create.

Форма - что-то вроде этого:

<form>
  <input name="form[year]"/>
  <textarea name="form[description]"></textarea>
  <div class="sortable">
    <div class="item">
      <input name="form[items][0][name]"/>
      <input name="form[items][0][age]"/>
    </div>
    <div class="item">
      <input name="form[items][1][name]"/>
      <input name="form[items][1][age]"/>
    </div>
  </div>
</form>

Вещь состоит в том, что поддающаяся сортировке часть формы может быть расширена от 2 до элементов N на стороне клиента. Так, чтобы это имело переменное количество объектов, которое может быть переупорядочено.

Как я могу приблизиться к этой проблеме?

Любые идеи приветствуются,
спасибо. :)

1
задан Asier 24 May 2010 в 13:18
поделиться

1 ответ

Я делаю нечто подобное, используя встроенные формы для повторяющихся полей.

В вашем классе формы вы можете сделать что-то вроде:

$form_data = $this->getObject();

if (isset($form_data['items']) && is_array($form_data['items']))
{
  $items_form = new BaseForm();

  foreach ($form_data['items'] as $count => $values)
  {
    $form = new BaseForm();
    $form->widgetSchema['name'] = new sfWidgetFormInputText();
    $form->widgetSchema['age'] = new sfWidgetFormInputText();

    $items_form->embedForm($count, $form);
  }

  $this->embedForm('items', $items_form);
  $this->validatorSchema['items'] = new sfValidatorPass(array('required' => false));
}
2
ответ дан 3 September 2019 в 00:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: