我试图找出如何使用动态复选框呈现表单。 这些复选框应该以动态方式实现,因为它们的数量取决于放置在外部.json文件中的项目(选项)。
有什么想法吗? 感谢。
答案 0 :(得分:2)
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;
},
]);