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

How to render Symfony form with dynamic number of checkboxes. The list of items(checkboxes) is placed in dynamic .json file

我正在尝试弄清楚如何使用动态复选框呈现表单。 这些复选框应该以动态方式实现,因为它们的数量取决于放置在外部 .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;
    },
]);