Symfony2: Form View - добавить другое поле в поле типа объекта - PullRequest
2 голосов
/ 09 декабря 2011

У меня есть следующий код в моем buildForm методе моего FormType

$builder->add('privileges', 'entity', array(
                'label' => 'Privileges',
                'expanded' => true,
                'multiple' => true,
                'class' => 'AcmeStoreBundle:AdminPrivilege',
                'property'=> 'description',
                'query_builder' => function(EntityRepository $er) use ($category)
                {
                            return $er->createQueryBuilder('p')
                                    ->where('p.categoryid = :categoryID')
                                    ->andWhere('p.parentid = -1')
                                    ->setParameter('categoryID', $category->getId())
                                    ->orderBy('p.position', 'ASC');
                }
            ));

Здесь, если parentid больше -1, тогда я хотел бы показать дополнительные компоненты формыпосле того, как установлен флажок parentid больше -1. ​​

Я искал в Google и не смог найти способ сделать это, кто-нибудь может помочь?

1 Ответ

1 голос
/ 25 января 2012

Mat. Если я правильно понимаю, вы можете ввести parentid и диспетчер сущностей для формирования конструкции типа из контроллера. Таким образом, вы можете выполнить запрос до добавления поля в конструктор и использовать if-else. Например:

public function __construct($parentId, $em)
{
    $this->parentId = $parentId;
    $this->em = $em;
}

public function buildForm(FormBuilder $builder, array $options)
{
    $choices = $this->em->getRepository()->callNeededMethod();

    if($this->parentId){
        $builder->add([someFieldParams]);
    }else{
        $builder->add([anoutherFieldParams]);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...