问问题
170 次
3 回答
1
您可以在那里查看:http ://symfony.com/doc/2.0/reference/forms/types/entity.html 来编写类似的代码:
->add('city', 'entity',
array('required' => true,
'label' => 'label',
'class' => 'YourBundle:TheClass',
'query_builder' => function(YourClassRepository $er) {
return $er->createQueryBuilder('e')->orderBy('e.name', 'ASC');
}
))
于 2013-04-23T14:43:07.310 回答
1
如果 city 是一个实体,那么它可以很简单 ->add('city')。如果你想要一个默认值,你可以在 $options 中提供实体,比如 'data' => $defaultEntity。此外,您的城市实体必须有一个 __toString 方法。但是,如果您在 city 上没有实体,则可以使用类似的东西
$builder->add('gender', 'choice', array(
'choices' => array('m' => 'Male', 'f' => 'Female'),
'required' => false,
));
此字段可能会呈现为几个不同的 HTML 字段之一,具体取决于扩展选项和多个选项:
- 元素类型-(扩展/多个)
- 选择标签-(假/假)
- 选择标签多个-(假/真)
- 单选按钮-(真/假)
- 复选框-(真/真)
于 2013-04-23T18:05:19.733 回答
1
您只需要指定“属性”字段。
->add('city', 'entity',
array('required' => true,
'label' => 'label',
'class' => 'YourBundle:TheClass',
'property' => 'name'
))
如果您希望查询构建器仅限于某些选择,则 Sandeepraju 的答案适用。
阅读更多:http ://symfony.com/doc/current/reference/forms/types/entity.html#property
于 2013-04-23T16:59:13.830 回答