Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 嵌入式集合的嵌入式集合-isValid问题_Symfony - Fatal编程技术网

Symfony 嵌入式集合的嵌入式集合-isValid问题

Symfony 嵌入式集合的嵌入式集合-isValid问题,symfony,Symfony,假设我有一个FooType和BarType(集合;级联验证设置为true),它本身有一个FooBarType(集合;级联验证设置为true) 所以 现在的问题是,如果我从GUI向fooBar集合添加一个由于有效约束而无效的元素,那么错误将附加到整个集合(而不是集合的元素字段),并且元素声明为有效(从探查器中看到)。如果我从GUI向fooBar集合添加了多个元素,集合仍然无效,无效状态(错误)仍然附加到集合中,第一个元素仍然声称有效,但其他元素附加了错误(这是我想要的) 问题: 为什么会有这样的

假设我有一个
FooType
BarType
(集合;级联验证设置为true),它本身有一个
FooBarType
(集合;级联验证设置为true)

所以


现在的问题是,如果我从GUI向
fooBar
集合添加一个由于有效约束而无效的元素,那么错误将附加到整个集合(而不是集合的元素字段),并且元素声明为有效(从探查器中看到)。如果我从GUI向
fooBar
集合添加了多个元素,集合仍然无效,无效状态(错误)仍然附加到集合中,第一个元素仍然声称有效,但其他元素附加了错误(这是我想要的)

问题: 为什么会有这样的行为?有什么想法吗


附加信息 这是探查器中显示的无效路径

对象(Symfony\Component\Form\Form).data.bar[0].foobar[0].fieldName= 空的

它获得了实际值,但“绑定”到集合而不是字段元素

Symfony版本:2.7

解决方案非常“简单”,但很难找到

我问自己,删除这个问题还是直接回答好。因为我很确定这个错误也会发生在其他人身上,而且“调查”也不是那么容易,所以我决定回答这个问题

错误 错误出现在集合原型javascript及其索引上。我是说

addTagForm()
javascript函数,在我的例子中,它是定制的,以达到我所需要的。问题是我在索引计算上犯了一个错误,因此每个新集合都从1开始,而不是从0开始

所以,当表单验证组件试图将错误附加到右侧字段时,会产生

对象(Symfony\Component\Form\Form).data.bar[0].foobar[0].fieldName= 空的

未找到索引为0的字段(在
foobar
级别),并且错误附加到其父项(集合)

所以,当我向集合中添加多个元素时,我看到的每个错误都是相对于“other”字段的(以n-1的方式)

我是如何发现这个错误的 使用探查器>表单,在左列中,您可以发现所有附加了错误的表单字段。通过观察索引,您可以找到我所说的内容。

解决方案非常“简单”,但很难找到

我问自己,删除这个问题还是直接回答好。因为我很确定这个错误也会发生在其他人身上,而且“调查”也不是那么容易,所以我决定回答这个问题

错误 错误出现在集合原型javascript及其索引上。我是说

addTagForm()
javascript函数,在我的例子中,它是定制的,以达到我所需要的。问题是我在索引计算上犯了一个错误,因此每个新集合都从1开始,而不是从0开始

所以,当表单验证组件试图将错误附加到右侧字段时,会产生

对象(Symfony\Component\Form\Form).data.bar[0].foobar[0].fieldName= 空的

未找到索引为0的字段(在
foobar
级别),并且错误附加到其父项(集合)

所以,当我向集合中添加多个元素时,我看到的每个错误都是相对于“other”字段的(以n-1的方式)

我是如何发现这个错误的 使用探查器>表单,在左列中,您可以发现所有附加了错误的表单字段。通过观察索引,你可以发现我在说什么

//FooType
$builder
  [...]
  ->add('bar', 'collection', [
      //...
      'type' => new BarType()
      'error_bubbling' => false,
      'allow_add' => true,
      'allow_delete' => true,
      'required' => false,
      'by_reference' => false,
      ]
  );
//BarType
$builder
  [...]
  ->add('fooBar', 'collection', [
      //...
      'type' => new FooBarType()
      'error_bubbling' => false,
      'allow_add' => true,
      'allow_delete' => true,
      'required' => false,
      'by_reference' => false,
      ]
  );