Symfony2形式的选择的无限值

时间:2013-01-16 14:59:33

标签: forms symfony

我想在我的表单中选择一个select,但select的值是动态的(带有ajax)

我的实体:

 /**
 * @ORM\Column(type="string", nullable=true )
 * @Assert\NotBlank()
 */
private $city;

我的表格:

$builder->add('city', 'choice',array('empty_value' => 'choice city', 'choices' => array() ));

但是,我有:

  

此值无效..

因为这个城市不在空阵列中!

2 个答案:

答案 0 :(得分:1)

由于city字段是一个简单的字符串,与表格无关,所以只需:

  1. 将字段渲染为简单的输入文本;
  2. 通过Ajax将用于城市自动完成的Javascript附加到输入字段以填充输入
  3. 然后您就可以提交了
  4. 或:

    1. 将字段渲染为文本。
    2. 将其隐藏在模板中
    3. 通过javascript代替文本输入
    4. 附加选择
    5. 使用该选择来呈现城市列表
    6. 在提交时从select中获取值并将其作为输入字段的值。
    7. 此方法也可用于设置可视窗口小部件的值,例如星级

答案 1 :(得分:0)

另一种扩展形式主题的解决方案:

以我的形式:

$builder->add('city', 'text',array('data' => 'choice city'));

在我的树枝模板中

{% form_theme form _self %}
{% block _template_defaultbundle_membertype_city_widget %} 
   <select {{ block('widget_attributes') }} ><option>{{ value }}</option></select> 
{% endblock %}
带有“template_defaultbundle_membertype_city”的

是输入的id