Symfony 3.4-是否可以为ChoiceType创建自动递增的ID?

时间:2019-03-22 01:35:58

标签: php forms symfony

我有一个Rails.application.config.assets.precompile += %w( particles.js ) ,它显示为一系列单选按钮:

ChoiceType

我希望每个选择都有一个递增的ID,例如“ card1”,“ card2”等,但不确定如何实际执行。选项本身是动态创建的-我不提前知道会有多少个选项(如果有)。

理想情况下,我可以在“ choice_attr”和/或“ choice_label”中访问某种内部计数器,但我在文档中看不到类似的东西。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

在外部创建一个计数器变量,并为您的每个选择计数。要添加ID,请使用choice_attr选项:

$i = 0;

$form = $this->createFormBuilder()
    ->add('card', ChoiceType::class, [
        'choices' => $choices,
        'choice_attr' => function() use ($i) {
            $i++;
            return ['id' => 'choice-'.$i];
        },
    ])