【问题标题】:Setting a Symfony2 Entity form field using it's id使用它的 id 设置 Symfony2 实体表单字段
【发布时间】:2015-06-19 11:39:02
【问题描述】:

我有一个 Symfony2 未映射的表单,它有一个“实体”类型的字段。这是表单类型定义:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('RegistrationForgotEmailTemplate', 'entity', array(
            'class' => 'EmailBundle:EmailTemplate',
            'placeholder' => '-- Default ---',
        ));
}

这里是我构建表单实例的地方:

$data = array('RegistrationForgotEmailTemplate' => 4);
$form = $this->createForm($formType, $data, array(
            'action' => $url,
            'method' => 'POST'
            ));

我的问题是表单没有将 RegistrationForgotEmailTemplate 字段设置为正确的实体(id 4)。我认为这是因为我提供的是实体的 id 而不是它的实例。有没有办法只提供实体的 id 来设置这个字段,或者是传递我想要设置字段的实体实例的唯一方法?

【问题讨论】:

标签: php forms symfony


【解决方案1】:

您可以使用转换器,也可以使用“选择”字段而不是“实体”并注入一个对象来提供选择列表(可能是存储库)。

我个人认为你会发现变压器方法更容易。生成的代码也会更好

【讨论】:

  • 我确实考虑过使用“选择”字段,但不喜欢注入选择的想法。 Transformer 看起来是一个更好的解决方案,我会试一试。谢谢:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多