gpt4 book ai didi

symfony-forms - 如何向集合添加违规?

转载 作者:行者123 更新时间:2023-12-04 02:46:10 24 4
gpt4 key购买 nike

我的表格如下所示:

public function buildForm(FormBuilderInterface $builder, array $options)
{
$factory = $builder->getFormFactory();

$builder->add('name');

$builder->add('description');

$builder->add('manufacturers', null, array(
'required' => false
));

$builder->add('departments', 'collection', array(
'type' => new Department
));
}

我在表单代表哪个实体的实体上有一个类验证器:
    if (!$valid) {
$this->context->addViolationAtSubPath('departments', $constraint->message);
}

这只会在表单中添加“全局”错误,而不会在子路径中添加错误。我认为这是因为部门是一个嵌入另一个FormType的集合。

如果我将 departments更改为其他字段之一,则可以正常工作。

如何使此错误出现在正确的位置?我认为如果我的错误是在集合中的单个实体上并因此以子窗体形式呈现的话,它将很好地工作,但是我的标准是,如果集合中的任何实体都未标记为事件,则会发生违规,因此在父级。

最佳答案

默认情况下,表单将选项“error_bubbling”设置为true,这会导致您刚刚描述的行为。如果希望单个表格保留其错误,则可以关闭此选项。

$builder->add('departments', 'collection', array(
'type' => new Department,
'error_bubbling' => false,
));

关于symfony-forms - 如何向集合添加违规?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11717882/

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