2015-03-02 71 views
0

我对Symfony2表单感到陌生。我创建了一个带有推动实体的表单,除了“选择”(选择)字段以外,值都没有问题,它们没有选定的值。symfony2:选择字段的选定值

我试着一些技巧,如:

$params['choices'] = array('N/A'=> 'N/A'); 
$params['data'] = array('N/A'); 
$params['preferred_choices'] = array('N/A'); 

即使这样,也没有预选值。怎么了 ?

回答

2

对于默认选定项目,您可以使用data属性。 $param['data'] = 'N/A' 这是抽象的“场”类型的一部分?

富勒示例形式中,

$form = $this->createFormBuilder() 
     ->add('category', 'choice', array(
      'choices' => array(
       0 => 'Books', 
       1 => 'Electronics', 
       2 => 'Hardware` 

      ), 
      'data' => 1 
     )) 
     ->getForm(); 

在这个例子中,当形式加载电子应该被选择为默认选项

+0

这样做,我有以下错误: 可捕获的致命错误:参数1传递给Symfony \ Component \ Form \ Extension \ Core \ ChoiceList \ SimpleChoiceList :: __ construct()必须为数组,字符串给定,调用在第176行中的C:\ Users \ ng4196c \ Workspaces \ inside \ inside_portal \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ Form \ Extension \ Core \ Type \ ChoiceType.php中,并且定义为 的确,构造函数是: 公共职能__construct(数组$选择,数组$ preferredChoices =阵列()){ ... 请 – Rolintocour 2015-03-02 08:17:13

+0

在这里分享你的代码段 – Nisam 2015-03-02 08:18:31

+0

可以ü请分享你的'form'建设者 – Nisam 2015-03-02 08:26:47

0
'empty_value' => 'Select Choice', 

$builder->add('gender', 'choice', array(
    'choices' => array('m' => 'Male', 'f' => 'Female') 
    'empty_value' => 'Select Choice', 
)); 
0

我终于解决了我的问题。有两件事: *使用Firefox重新加载,之前选择的值似乎保留,所以我没有真正测试更改,直到我关闭当前选项卡并重新打开一个; *我将单维数组作为“选择”字段的值传递,因此Symfony2将其重新索引为整数,并且我的实体字符串值无法合并为字段的symfony2整数值。