如果我在表单选择中使用整数作为值...
$builder
->add('name')
->add('phone')
->add('time', 'choice', array(
'choices' => array(
1 => 'Morning',
2 => 'Afternoon'
)
))
有没有办法访问选项文本?
我的意思是,如果我将2
存储在我的实体上,我该如何呈现Afternoon
?
答案 0 :(得分:1)
你不能或不应该按照你提到的方式这样做。正确的方法是创建一个选项解析器,它将知道哪个选项与哪个id(它可能是实体或简单集合)相关,并且可以返回可用选项列表。
$builder
->add('name')
->add('phone')
->add('time', 'choice', array(
'choices' => $optionsCollection->getList()
));
您可以从实体
获取选项$optionsCollection->getOption( $entity->getTime() );
另一方面,您可以使用id来定义数组,但使用正确的值:
->add('time', 'choice', array(
'choices' => array(
'Morning' => 'Morning',
'Afternoon' => 'Afternoon'
)
这也是一些解决方案,实施起来要快得多。
问候,Piotr