【问题标题】:Default value in EntityTypeEntityType 中的默认值
【发布时间】:2017-11-11 22:23:00
【问题描述】:

我的表单中有一个 EntityType,我想设置一个默认选择值,这可能吗?

这是我在 FormType 中的代码:

->add('pays', EntityType::class, [
             'class' => Pays::class,
             'choice_label' => function (Pays $pays) {
                 return $pays->getNomFrFr();
             },
        ])

HTML中select的每个选项的值与我数据库中的id匹配:

<label for="boutique_pays" class="required">Pays</label><select id="boutique_pays" name="boutique[pays]">
    <option value="1">Afghanistan</option>
    <option value="2">Albanie</option>
    <option value="3">Antarctique</option>
    <option value="4">Algérie</option>
    ...
    <option value="237">Wallis et Futuna</option>
    <option value="238">Samoa</option>
    <option value="239">Yémen</option>
    <option value="240">Serbie-et-Monténégro</option>
    <option value="241">Zambie</option>
</select>

我想将选定的值设置为“75”(法国),可以吗?

提前致谢

【问题讨论】:

标签: php forms symfony doctrine-orm twig


【解决方案1】:

在创建表单类型时传递 EntityManager 和您的默认选择 objectID。

$repository = $this->getDoctrine()->getRepository(YourClass)->find($id);
$yourDefaultValue = $repository->getId();


$form = $this->createForm(new YourTypeType($entityManager), $yourEntity, array(
            'action' => $this->generateUrl('route_create'),
            'method' => 'POST',
            'your_default_value' => $yourDefaultValue,
        ));

在您的表单类型中添加构造函数。然后替换您的代码...

  private $em;

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

  ->add('pays', EntityType::class, [
         'class' => Pays::class,
         'choice_label' => function (Pays $pays) {
             return $pays->getNomFrFr();
         },
         'data'=>$this->em->getReference("YourEntity",$options['your_default_value'])

    ])

最后,在 setDefaultOptions 中添加 your_default_value 空数组

public function setDefaultOptions(OptionsResolverInterface 
 $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'YourEntity',
            'your_default_value' => array()
        ));
    }

【讨论】:

    猜你喜欢
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多