Как настроить поле формы на основе пользовательских ролей в Symfony2 / 3?

Есть ли правильный способ настроить форму в зависимости от роли пользователя, который ее запрашивает?

Мой сценарий довольно прост: мне нужно скрыть некоторые поля, если у пользователя нетROLE_ADMIN предоставляется. Я пытался избежать отображения поля на Twig, но

  {% if is_granted('ROLE_ADMIN') %}
              {{form_row(form.field)}}
  {% endif %}

не работает, потому что строитель формы обходит эту проверку.

Версия Symfony:2.8.2

РЕДАКТИРОВАТЬ

Благодаря @Rooneylпредложение Я нашел решение:

Сначала вам нужно добавить ключ 'role' к параметру options. Итак, в configureOptions ()$options['role'] всегдаROLE_USER.

/**
 * @param OptionsResolver $resolver
 */
public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(array(
        'data_class' => 'MyBundle\Entity\Ticket',
        'role' => 'ROLE_USER'
    ));
}

Затем в контроллере вы должны передатьgetRoles() массив:

$user_roles = $this->getUser()->getRoles();
$form = $this->createForm('MyBundle\Form\TicketType', $ticket, array('role' => $user_roles));

Ответы на вопрос(2)

Ваш ответ на вопрос