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

时间:2017-10-19 12:45:51

标签: php arrays json symfony symfony-3.3

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

有什么想法吗? 感谢。

1 个答案:

答案 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;
    },
]);