Tom*_*žek 4 forms collections symfony
您好,我在表单中收集文本字段时遇到问题。当其中一个字段出现错误时,这些错误会冒泡到父表单中,因此它们不会分配给字段,而是分配给父表单本身。它是下面代码中的“points”集合。我尝试将 error_bubbling 设置为 false,但没有效果。
\n\n <?php\n namespace JamaLvova\\AdminBundle\\Form\\Type;\n\n use Symfony\\Component\\Form\\AbstractType;\n use Symfony\\Component\\Form\\FormBuilderInterface;\n use Symfony\\Component\\OptionsResolver\\OptionsResolverInterface;\n use JamaLvova\\AdminBundle\\Form\\Type\\ExercisePointsFormType;\n\n class StartContestFormType extends AbstractType\n {\n public function buildForm(FormBuilderInterface $builder, array $options)\n {\n\n $builder->add(\'startYear\', \'hidden\')\n /*\n some other form elements\n */\n ->add(\'points\', \'collection\', array(\n \'type\' => \'text\',\n \'allow_add\' => true,\n \'label\' => \'Body za jednotliv\xc3\xa9 \xc3\xbalohy:\',\n \'error_bubbling\' => false,\n \'options\' => array(\n \'error_bubbling\' => false,\n \'attr\' => array("maxlength" => "4", "size" => "4")\n )\n ));\n }\n\n public function setDefaultOptions(OptionsResolverInterface $resolver)\n {\n $resolver->setDefaults(array(\n \'data_class\' => \'JamaLvova\\AdminBundle\\Form\\StartContestForm\',\n ));\n }\n\n public function getName()\n {\n return \'startContestForm\';\n }\n }\n
Run Code Online (Sandbox Code Playgroud)\n\n在 StartContestForm 中,我有 $points 属性,如下所示:
\n\n /**\n * @Assert\\Type(type="integer", message="Hodnota {{ value }} nen\xc3\xad cel\xc3\xa9 \xc4\x8d\xc3\xadslo.")\n * @Assert\\Range(\n * min = "0",\n * max = "",\n * minMessage = "Body nemohou b\xc3\xbdt z\xc3\xa1porn\xc3\xa9",\n * maxMessage = "P\xc5\x99\xc3\xadli\xc5\xa1 mnoho bod\xc5\xaf"\n * )\n */\n private $points;\n
Run Code Online (Sandbox Code Playgroud)\n\n在 twig 模板中,当我迭代 form.points 时,没有字段有错误,但 form.points 有错误。有谁知道问题可能出在哪里?或者我错过了什么?非常感谢:-)(Symfony v.2.1.4)
\n\n编辑:似乎如果我使用表单集合 (\'type\' => new PointsFormType()) 而不是 \'type\' => \'text\',它会按预期工作。这是否意味着我总是需要使用表单集合才能将错误分配给某些字段?
\n您可能需要添加cascade_validation\' => true
$builder->add(\'startYear\', \'hidden\')\n /*\n some other form elements\n */\n ->add(\'points\', \'collection\', array(\n \'type\' => \'text\',\n \'allow_add\' => true,\n \'label\' => \'Body za jednotliv\xc3\xa9 \xc3\xbalohy:\',\n \'error_bubbling\' => false,\n \'cascade_validation\' => true,\n \'attr\' => array("maxlength" => "4", "size" => "4")\n ));\n}\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
11635 次 |
最近记录: |