php - Symfony2 将值传递给集合表单类型

标签 php symfony

我有以下实体关系:

  • 客户有一对多地址
  • 一个地址有多对一的县和多对一的市
  • 一个县有一对多的城市。

所以,在我的 CustomerType 中,我有

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ...
        ->add('addresss', 'collection', array(
            'label' => 'customer.address',
            'type' => new AddressType(),
            'allow_add' => true,
            'allow_delete' => true,
            'by_reference' => false,
        ))
    ;
}

在我的 AddressType 中,我有

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ...
        ->add('city', 'entity', array(
            'class' => 'MyCustomerBundle:City',
            'query_builder' => function(CityRepository $cr) use ($options) {
                return $cr->getCityQB($options['county']);
            },
            'property' => 'city',
            'empty_value' => '',
        ))
    ;
}

我的目标是只显示相应县的城市集。我可以从 $options 中获取 CustomerType 中的值,但是如何将这些值传递给 AddressType?以便每个地址都得到其对应的县来查找城市?

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

在 symfony3 中:

$builder->add('example', CollectionType::class, array(
    'entry_type'   => ExampleType::class,
    'entry_options'  => array(
        'my_custom_option'  => true),
));

关于php - Symfony2 将值传递给集合表单类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15199784/

相关文章:

symfony - 学说查询生成器错误

session - 如何创建一个命令控制台来使 Symfony2 中的 session 过期/销毁?

php - 对于 OpenSSL ECC,我们可以拥有多个公钥和一个私钥吗?

php - 在 PHP 中使用 Do while 循环遍历 A-Z

php - Cakephp 类注册表::初始化

php - 如何在 Symfony2 中使用 URL 字符串转发请求

Symfony2 : How to access a service inside an extension's load() method?

php - 搜索结果不显示

php - Laravel app boostraps 在测试环境的早期

javascript - Symfony Assetic-URL中的part_1