Symfony-将变量传递到表单->添加到getter

Symfony-将变量传递到表单->添加到getter,symfony,doctrine,Symfony,Doctrine,是否可以通过表单->添加'field','collection',将变量传递给实体中的getter entity.php public function getFilteredFields($var) { //......Do stuff } formtype.php ->add('filteredFields', 'collection', array( 'type' => new FieldTextType(), ) 你可以通

是否可以通过表单->添加'field','collection',将变量传递给实体中的getter

entity.php

public function getFilteredFields($var) {
    //......Do stuff
}
formtype.php

->add('filteredFields', 'collection', array(
            'type'          => new FieldTextType(),
)
你可以通过电脑来完成

为FormEvents::PRE_SET_数据创建订阅服务器/eventListener并手动填充有效数据。您可以将订阅服务器注册为服务并注入所需的依赖项

模板建筑示例:

$builder->addEventListener(
            \Symfony\Component\Form\FormEvents::PRE_SET_DATA,
            function (\Symfony\Component\Form\FormEvent $event) {
                $form = $event->getForm();
                /* @var $form \Symfony\Component\Form\Form */
                $data = $event->getData();
                /* @var $data myEntity */
                $filteredFields = $data->getFilteredFields();
                // get data for $somePopulatedValue
                $form->add(
                    'filteredFields',
                    'collection',
                    [
                       'options' => ['choices' => '...'],

                    ]
                );
            }
        );

这样做的目的是什么?我正在尝试筛选集合,以便它只返回集合中选定的组,而不是该集合中的所有记录。啊哈,我认为这是不可能的。或者,您可以使用应用的筛选器获取1:N,然后将数据提交到表单…您知道是否有方法筛选集合吗?