【问题标题】:How to access the entity inside the buildForm method of a form如何访问表单的 buildForm 方法中的实体
【发布时间】:2013-06-27 14:18:22
【问题描述】:

我正在尝试将实体放入自己的表单中。懒得记个getData()方法,但是form里面不存在,不记得怎么用了。

有什么方法可以在不使用事件监听器的情况下获取 buildform 方法中的实体?

我的意思是,像这样:

 public function buildForm(FormBuilderInterface $builder, array $options)
   {
        /*some method to get the entity of the form such as getEntity????????*/
        $builder->add('field');
   }

【问题讨论】:

标签: forms symfony get entity


【解决方案1】:

我找到了:

public function buildForm(FormBuilderInterface $builder, array $options)
   {
        $entity = $builder->getData();
        $builder->add('field');
   }

【讨论】:

  • 请注意,如果您在集合中使用类型,您需要使用表单事件 $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($builder) { /** @var YourEntity $data */ $data = $event->getData(); });
  • @nvvetal 你的评论让我很开心 :) 谢谢。如果您想在事件中修改构建器,请执行 $form = $event->getForm() 而不是 $form->add
  • 谢谢! 1 小时我正在寻找解决方案.... symfony 文档并不总是完整的 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-24
  • 1970-01-01
  • 1970-01-01
  • 2019-03-05
  • 2014-09-18
  • 1970-01-01
相关资源
最近更新 更多