如何使用动态数量的复选框呈现Symfony表单。项目列表(复选框)被放置在动态.json文件

问题描述:

我想弄清楚如何使用动态复选框呈现表单。 这些复选框应该以动态方式实现,因为它们的数量取决于放置在外部.json文件中的项目(选项)。如何使用动态数量的复选框呈现Symfony表单。项目列表(复选框)被放置在动态.json文件

任何想法? 谢谢。

CallbackChoiceLoader是在Symfony 3.2+中引入的。

为了加载你的选择从JSON文件,你可以做到以下几点:

use Symfony\Component\Form\ChoiceList\Loader\CallbackChoiceLoader; 
use Symfony\Component\Form\Extension\Core\Type\ChoiceType; 

$builder->add('constants', ChoiceType::class, [ 
    'multiple' => true, 
    'expanded' => true, // render checkboxes 
    'choice_loader' => new CallbackChoiceLoader(function() { 
     $file = '/path/to/choices.json'; 
     $jsonString = file_get_contents($file); 
     $choiceArray = json_decode($jsonString, true); 

     return $choiceArray; 
    }, 
]); 
+0

优雅的延迟加载! +1 :) – yceruto

+2

感谢您的编辑 - 我忘了添加'expanded'选项:) – nifr