sfWidgetFormJQueryAutocompleter:如何检索所选元素的键?

sfWidgetFormJQueryAutocompleter:如何检索所选元素的键?,jquery,symfony1,Jquery,Symfony1,我有一个小部件: $this->widgetSchema['user'] = new sfWidgetFormChoice(array( 'choices' => array(), 'renderer_class' => 'sfWidgetFormJQueryAutocompleter', 'renderer_options' => array('url' => 'autocomplete', 'config' => '{

我有一个小部件:

$this->widgetSchema['user']  = new sfWidgetFormChoice(array(
  'choices'          => array(),
  'renderer_class'   => 'sfWidgetFormJQueryAutocompleter',
  'renderer_options' => array('url' => 'autocomplete', 'config' => '{ multiple:true }'),
));
这是自动完成功能:

public function executeAutocomplete($request)
{

$this->getResponse()->setContentType('application/json');

$q = "%" . $request->getParameter('q') . "%";

$limit = $request->getParameter('limit');

//Criteria code

return $this->renderText(json_encode($cli));
}

返回以下内容(“Firebug中的响应”选项卡):

然后,我在自动完成输入中以这种方式选择两个名称:

[约翰,彼得]

提交表单时,getPostParameters()方法返回以下内容:

array
  'example' => 
    array
      'id' => string '' (length=0)
      '_csrf_token' => string '388774046d0f5c8b4a3f114ddb15af7b' (length=32)
      'user' => string '18' (length=2)
  'autocomplete_example' => 
    array
      'user' => string 'John, Ann, ' 
那么,我应该如何检索用户的id呢

sf 1.4


Javier

好的,现在我了解了这个小部件的工作原理。当你创建这种小部件时 对于widget,它实际上创建了两个字段:autocomplete\u my\u字段( 显示的字段以及插入数据的位置( 数组元素)和my_字段(隐藏字段,其中包含键) 插入)

当您仅插入一个元素,但 插入多个元素,这些元素的键将被覆盖 (第二个元素的id覆盖第一个元素的id, 第三个元素的id覆盖第二个元素的id 一个,…),所以你不能检索所有的。所以我认为这是一个bug

编辑:

可能此代码段有用。在该代码段中,tags_list不是一个随意的名称,而是由symfony生成的字段的名称,该字段显示关系另一端的元素。这样,您将覆盖它

array
  'example' => 
    array
      'id' => string '' (length=0)
      '_csrf_token' => string '388774046d0f5c8b4a3f114ddb15af7b' (length=32)
      'user' => string '18' (length=2)
  'autocomplete_example' => 
    array
      'user' => string 'John, Ann, '