如何使用动态数量的复选框呈现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;
},
]);
优雅的延迟加载! +1 :) – yceruto
感谢您的编辑 - 我忘了添加'expanded'选项:) – nifr