【问题标题】:Set Value to Placeholder option of EntityType in symfony在 symfony 中将值设置为 EntityType 的占位符选项
【发布时间】:2018-10-17 06:26:40
【问题描述】:

我是 symfony 的初学者。 有没有办法在formtype的EntityType中为我的占位符设置一个值 我当前的表单类型是

$builder
    ->add('scheme', EntityType::class, array(
        'class' => 'AppBundle:Lottery\Masters\MasterScheme',
        'placeholder' => '-- Select Scheme --',
        'choice_label' => 'schemeName',
        'attr' => array(
            'class' => 'select'
        )
    )
);

当我检查我的下拉列表时,占位符 ---Select Scheme-- 没有任何价值。有什么方法可以为我的占位符赋予价值 希望我得到一个解决方案

【问题讨论】:

  • 你确定你想要一个占位符的价值(这对我来说听起来有点奇怪的概念)? IE。例如,您不是在从您的 MasterScheme 实体设置默认值之后吗?但是要回答您的问题,您可以通过删除占位符设置并创建一个自定义的 MasterSceheme 实例(在运行中或在数据库级别)作为下拉菜单的默认“占位符”(这个ofc 将需要实施自定义处理/验证以及处理表单提交等)

标签: php forms symfony drop-down-menu entity


【解决方案1】:

您在寻找一个空值吗?因此,它将作为下拉列表中的第一件事进行填充。那你就可以这样了,

$builder->add('name', null, array(
    'required'   => false,
    'empty_data' => 'John Doe',
));

https://symfony.com/doc/current/reference/forms/types/entity.html#empty-data

如果您指的是标签(下拉列表旁边的文本),请使用此

$builder->add('users', EntityType::class, array(
    'class' => User::class,
    'query_builder' => function (EntityRepository $er) {
        return $er->createQueryBuilder('u')
            ->orderBy('u.username', 'ASC');
    },
    'choice_label' => 'username',
));

https://symfony.com/doc/current/reference/forms/types/entity.html#using-a-custom-query-for-the-entities

【讨论】:

  • 什么都没发生......当我尝试它时。占位符本身没有显示
  • 我的答案略有改变。请你再试一次。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-31
  • 2017-11-18
  • 2022-01-02
  • 1970-01-01
  • 2017-03-10
  • 1970-01-01
  • 2014-07-31
相关资源
最近更新 更多