通常,表单会显示选择代码, 我有两个表有多对一的关系。
例如
MainTable
ID | name |job
1 | Mr.A |1
2 | Mr.D |1
3 | Mr.C |3
jobTable
ID | name
1 | doctor
2 | engineer
3 | teacher
然后,我正在通过表格输入Maintable symfony使用选择框进行这种选择,但我使用这样的单选按钮。
$form = $this->createFormBuilder($mainTable)
->add('job','entity',array(
'class' => 'AcmeTopBundle:jobTable','expanded' => true))
然后我想预先选择一个按钮。
我找到了提示。
How to pre-select a form radio item with Symfony 2?
它说要使用
'data'=> 1
但我的选择是jobTable实体。
我怎样才能把工作表实体放进去?
'data'=> ???
答案 0 :(得分:1)
您必须将实体记录作为数据传递给自己。所以,从控制器:
$em = $this->getDoctrine()->getEntityManager();
// If you want to preselect record with ID #1
$preselectedData = $em->getReference('AcmeTopBundle:jobTable', 1);
$form = $this->createFormBuilder($mainTable)
->add(
'job','entity',array(
'class' => 'AcmeTopBundle:jobTable','expanded' => true,
'data' => $preselectedData
)
)
// ...
;
答案 1 :(得分:0)
更容易在entity/value object
中设置默认值。表单组件处理它们并预先选择它。