gpt4 book ai didi

php - symfony 2.8 : Invalid argument supplied for foreach() into Constraints/FormValidator

转载 作者:搜寻专家 更新时间:2023-10-31 21:55:27 24 4
gpt4 key购买 nike

使用 silex 2.0 和 symfony 2.8 表单组件(不是 sf2 完整堆栈),我有一个包含多个字段和一个嵌入表单的表单。

提交表单时,我收到一个错误:

Warning: Invalid argument supplied for foreach() in vendor/symfony/form/Extension/Validator/Constraints/FormValidator.php on line 66

然而,当执行 $config->getOption('constraints') 时,在 FormValidator.php 中没有对任何字段和表单设置约束。 ,它返回一个 字段的空数组 但是 NULL用于嵌入表单 .

是否应该将约束也设置为嵌入表单的空数组?如果我们必须手动设置它,我应该在哪里做?

这是代码:
class DebugPreviewChannelForm extends AbstractType
{
public function __construct(FormFactoryInterface $formFactory)
{
$this->formFactory = $formFactory;
}

public function build(array $data, array $apps)
{
$builder = $this->formFactory->createBuilder(FormType::class, $data);

$builder->add(
'applicationId',
ChoiceType::class,
[
'choices' => $apps,
'label' => 'Application',
'choices_as_values' => true,
]
)
->add('user', UserType::class);

return $builder->getForm();
}
}

class UserType extends FormType implements DataMapperInterface
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->setCompound(true)
->setDataMapper($this)
->add(
'hash',
TextType::class,
['required' => false]
);
}
}

如果我删除 ->add('user', UserType::class) ,它完美地工作。

最佳答案

我终于设法让它发挥作用。我刚刚更改了 userType 类的实现。

来源:http://symfony.com/doc/current/cookbook/form/inherit_data_option.html

class UserType extends \Symfony\Component\Form\AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add(
'hash',
TextType::class,
['required' => false]
);
}
}

关于php - symfony 2.8 : Invalid argument supplied for foreach() into Constraints/FormValidator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34427418/

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