具有默认值和嵌入表单的Symfony2实体

时间:2013-09-05 05:23:01

标签: php forms symfony

我有一个类,它是一个表单类型(反过来,嵌入到另一个表单中),用于选择公社,地区和国家,每个都有一个下拉列表(区域取决于国家/地区)。我希望在构建国家/地区列表时默认选择某个国家/地区。这就是我所拥有的:

$factory = $builder->getFormFactory();
$builder->add('pais', 'entity', array(
'class' => 'Codesin\ColegiosBundle\Localidad\Pais',
'property' => 'nombre',
'query_builder' => function (EntityRepository $repositorio) {
    $qb = $repositorio->createQueryBuilder('pais')
        ->orderBy('pais.nombre');
        return $qb;
    }
));

我尝试过使用preferred_value(它说我需要一个对象,我无法从任何地方获取该对象,因为我在类中没有数据库访问权限)和data(这不是不行。我尝试在两种情况下都使用实体的id。在这种情况下,如何设置所选的默认值?

3 个答案:

答案 0 :(得分:0)

如果您正在使用带有模型对象的表单类型,请在对象本身上设置默认值。

答案 1 :(得分:0)

尝试 SET_DATA POST_SET_DATA 表单事件:您可以在lambda函数中执行类似的操作:

$data = $event->getData();
$form = $event->getForm();

// search in the form for the right entity to set as country.. let's consider $country

$data->setCountry($country);
$event->setData($data);

它可能有用。试着告诉我们进展情况

答案 2 :(得分:0)