Symfony2如何在选择实体字段中设置选项值
我想知道是否有办法在选择列表中设置选项的值。此选择是一个选择实体字段 在我的代码中,一切正常。重点是,在我看来,我得到了value选项中每个字段的ID,我需要在其中有另一个字段 我正在使用option属性设置将在选项名称中显示的内容,但我还需要设置将在value字段中显示的内容 到目前为止,我还没有找到解决方案,所以如果有人能帮助我,我将不胜感激 我的一小部分领域是表单类型Symfony2如何在选择实体字段中设置选项值,symfony,Symfony,我想知道是否有办法在选择列表中设置选项的值。此选择是一个选择实体字段 在我的代码中,一切正常。重点是,在我看来,我得到了value选项中每个字段的ID,我需要在其中有另一个字段 我正在使用option属性设置将在选项名称中显示的内容,但我还需要设置将在value字段中显示的内容 到目前为止,我还没有找到解决方案,所以如果有人能帮助我,我将不胜感激 我的一小部分领域是表单类型 ->add('fieldName','entity', array( 'class' => 'p
->add('fieldName','entity', array(
'class' => 'path\to\entity',
'property' => 'name',
'multiple' => true,
'expanded' => false,
)
谢谢
我返回的HTML代码如下所示
<select>
<option value="4">ROLE_EXAMPLE</option>
</select>
角色示例
我想做的是得到这样的结果:
<select>
<option value="specific_property_from_entity">ROLE_EXAMPLE</option>
</select>
角色示例
如果我理解您的问题,您是在问如何在实体字段上设置首选项
您可以查看以下答案:您可以使用
选择
类型而不是实体
,下面是一些示例:
class YourType extends AbstractType
{
protected $em;
// Injecting EntityManager into YourType
public function __construct(EntityManager $em)
{
$this->em = $em;
}
private function getChoices()
{
// some logic here using $this->em
// it should return key-value array, example:
return [
'foo' => 'bar',
'test' => 'abc', // and so on...
];
}
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('fieldName', 'choice', [
'choices' => $this->getChoices(),
]
)
}
}
您可以传递选项值选项,该选项使用可调用或属性路径(getProperty())填充选项值
->add('fieldName','entity', array(
'class' => 'path\to\entity',
'property' => 'name',
'multiple' => true,
'expanded' => false,
'choice_value => 'Property'
)
如果您使用可调用来填充选项值,您需要检查字段值是否为空。您能解释一下您希望得到什么类型的值吗?请将生成的hmtl和您希望得到的内容放在这里。@bartek我在上面举了一个例子。谢谢。@Sergiocata请参见上面的示例。我已经编辑了我的问题。Thanks@grogers是的,我也遇到了同样的问题,通过
choice
字段类型解决了。实际上我认为他想更改默认值选项。回答得好@bartek!但是getChoices()方法应该返回一个key=>value数组,在右边?返回数组('id'=>'lorem',value='lorem')谢谢@bartek,这正是我要找的东西。=)@是的,它应该返回键值数组。