Symfony2 разбивает все известные вам шаблоны ... Так что не удивляйтесь. Я показал решение, которое работает для меня, sf2 - плохой mvc для разработки, если вы хотите работать с шаблонами. Если у вас есть более элегантный - используйте свой ...

ользую список выбора сущностей в своей форме. Я хочу использовать только определенные объекты (например, только группы, к которым принадлежит пользователь). Итак, в контроллере я получаю эти группы и пытаюсь передать их вformBuider.

контроллер:

/.../
$groups = $em->getRepository('VendorMyBundle:Group')->getUserGroups($user);
$form = $this->createForm(new Message($groups), $message);
/.../

и что теперь? как использовать это в formBuilder? как изменить эту строку, чтобы использовать переданный массив групп?

->add('group','entity',array('class' => 'Vendor\MyBundle\Entity\Group', 'label'=>'Group:'))

или другим способом:

class MessageType
{
/.../
  public function buildForm(FormBuilder $builder, array $options)
  {
    $builder
      ->add('group','entity',
        array(
          'class' => 'Vendor\MyBundle\Entity\Group',
          'property' => 'name',
          'query_builder' => function ($repository) {
            $qb = $repository->createQueryBuilder('group');
            $qb->add('where', 'group.administrator = :user');
            $qb->setParameter('user', $user->getId());
            return $qb;
          },
          'label' => 'Group'
        )
      )
      // Continue adding fields
    ;
  }
/.../
}

так как я могу получить объект $ user для использования в построителе форм? ($ user представляет текущего зарегистрированного пользователя)

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

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