Форма в Symfony отображается полностью, а не только некоторые части?

1

Я хотел бы показывать только некоторые части формы, но форма всегда полностью отображается со всеми полями, а не просто показывает поля, которые я хочу отобразить. Вы знаете, почему?

{{ form_start(form) }}
    {{ form_label(form.title) }}
{{ form_end(form) }}




$form = $this->createFormBuilder($advert)
    ->add('date', DateType::class, array(
        'widget' => 'text',
        'label'  => 'custom Date',
    ))
    ->add('title', TextType::class)
    ->add('save', SubmitType::class)
    ->getForm();

  return $this->render('OCPlatformBundle:Advert:edit.html.twig', array(
    'form'   => $form->createView(),
    'advert' => $advert
  ));

В результате: отображается дата и заголовок, как с меткой, так и с значением html.

благодаря

Теги:

2 ответа

4
Лучший ответ

form_end() также выводит form_rest(), который отображает все поля, которые еще не были отображены для данной формы: http://symfony.com/doc/current/reference/forms/twig_reference.html#form-rest-view- переменные

Если вы не хотите отображать незагруженные поля, добавьте {'render_rest': false} в form_end:

 {{ form_end(form, {'render_rest': false}) }}
  • 1
    Спасибо Александру Фуркулита
1

Вы можете отобразить только часть формы

{{ form_start(form) }}
    {{ form_errors(form) }}

    {{ form_row(form.first) }}
    {{ form_row(form.second) }}
    ...

    {{ form_row(form.submit, { 'label': 'Submit me' }) }}
{{ form_end(form, {'render_rest': false}) }}

Если вы хотите удалить поля, вы можете удалить поля в примере контроллера:

$form->remove("your fields");
  • 0
    Это не поможет, поскольку все поля, которые не были отображены явно, будут отображаться при вызове form_end() (из-за его вызова form_rest() как объяснил Александру Фуркулита).
  • 0
    Спасибо за ответ

Ещё вопросы

Сообщество Overcoder
Наверх
Меню