gpt4 book ai didi

symfony - 在Symfony 2中验证动态加载的选择

转载 作者:行者123 更新时间:2023-12-03 12:55:18 26 4
gpt4 key购买 nike

我在表单中有一个名为* sub_choice *的选择字段类型,其选择项将根据父选择字段(* parent_choice *)的选定值通过AJAX动态加载。加载选择效果很好,但是在提交时验证sub_choice的值时遇到问题。由于生成的值不在sub_choice字段的选择范围内,因此会给出“此值无效”验证错误。那么,有什么方法可以正确验证sub_choice字段的提交值?下面是构建表单的代码。我正在使用Symfony 2.1。

public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('parent_choice', 'entity', array(
'label' => 'Parent Choice',
'class' => 'Acme\TestBundle\Entity\ParentChoice'
));

$builder->add('sub_choice', 'choice', array(
'label' => 'Sub Choice',
'choices' => array(),
'virtual' => true
));
}

最佳答案

为此,您需要在提交表单之前覆盖sub_choice字段:

public function buildForm(FormBuilderInterface $builder, array $options)
{
...

$builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) {
$parentChoice = $event->getData();
$subChoices = $this->getValidChoicesFor($parentChoice);

$event->getForm()->add('sub_choice', 'choice', [
'label' => 'Sub Choice',
'choices' => $subChoices,
]);
});
}

关于symfony - 在Symfony 2中验证动态加载的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12946461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com