Symfony 获取从表单中选择的多个选项的选项值
我使用以下代码制作表单:Symfony 获取从表单中选择的多个选项的选项值,symfony,html-select,Symfony,Html Select,我使用以下代码制作表单: $builder ->add('person','entity',array( 'class'=>'MyBundle:Person', 'multiple' => true, 'empty_value' => 'None', 'required'=>false, 'mapped'=>false)); 因此,我得到了以下html: <sele
$builder
->add('person','entity',array(
'class'=>'MyBundle:Person',
'multiple' => true,
'empty_value' => 'None',
'required'=>false,
'mapped'=>false));
因此,我得到了以下html:
<select id="mybundle_person_person" multiple="multiple" name="mybundle_person[person][]">
<option value="1">Surname1</option>
<option value="5">Surname2</option>
<option value="6">Surname3</option>
<option value="11">Surname4</option>
<option value="19">Surname5</option>
</select>
在变量$key中,获取顺序为0,1,2,。。。(数组索引)。
但是这不是我所需要的。如果您使用
实体创建了一个表单,并且person字段是您的实体的映射属性
$form = $this->createFormBuilder(new YourEntity());
然后,您可以简单地调用属性的getter,如
if ($form->isValid()) {
$persons=$form->getData()->getPerson();
echo '<pre>';print_r($persons);echo '</pre>';
}
if($form->isValid()){
$persons=$form->getData()->getPerson();
回音“”;打印($persons);回音“”;
}
如果您的表单没有通过实体映射,那么您可以从请求中获取所有
if($form->isValid()){
$requestAll=$this->getRequest()->request->all();
$persons=$requestAll['mybundle\u person']['person'];
回音“”;打印($persons);回音“”;
}
通过此行$per=$form->get('person')->getData();您检索的是人员对象列表,而不是索引数组
因此,在循环中只需执行$logger->info('person:key='.$value->getId()'value='.$value))
if ($form->isValid()) {
$persons=$form->getData()->getPerson();
echo '<pre>';print_r($persons);echo '</pre>';
}
if ($form->isValid()) {
$requestAll = $this->getRequest()->request->all();
$persons = $requestAll['mybundle_person']['person'];
echo '<pre>';print_r($persons);echo '</pre>';
}