我使用表单来编辑一些数据。其中一个表单字段:
$builder ->add('cities', 'entity', array(
'class' => 'VendorSomeBundleEntityCity',
'multiple' => true
));
一切都很好-我有一些预选的城市根据数据库。
现在我想将选择限制为特定国家的城市。所以我得到了城市的集合并设置了'choices'选项:
$builder ->add('cities', 'entity', array(
'class' => 'VendorSomeBundleEntityCity',
'multiple' => true,
'choices' => $citiesCollection
));
选择列表有限,但没有选择城市。
我尝试使用'data'选项设置这些预选城市,但这也不起作用
$builder ->add('cities', 'entity', array(
'class' => 'VendorSomeBundleEntityCity',
'multiple' => true,
'choices' => $citiesCollection
'data' => $citiesSelected
));
尝试不同的方法,传递ArrayCollection,数组,键数组,但没有工作…这有可能吗?
工作解决方案-设置'query_builder"选项而不是'choices'
$builder ->add('cities', 'entity', array(
'class' => 'VendorSomeBundleEntityCity',
'multiple' => true,
'query_builder' => $citiesQueryBuilder
));
现在呈现的表单已选定城市
我认为将$citiesSelected数组分配给分配给表单的基本实体的cities字段将会使技巧