Symfony:不推荐使用cascade_validation选项

asd*_*fjk 9 php symfony

我正在尝试将我的项目从symfony2升级到symfony3.我想摆脱这个弃用警告

The "cascade_validation" option is deprecated since version 2.8 and will be removed in 3.0. Use "constraints" with a Valid constraint instead."
Run Code Online (Sandbox Code Playgroud)

以下是我的代码

->add('student_name', 'collection', array(
                'entry_type' => TextType::class,
                'allow_add' => true,
                'cascade_validation' => true,
                'options' => array(
                    'required' => false
                )
            ))
Run Code Online (Sandbox Code Playgroud)

我可以在'cascade_validation' => true不造成任何麻烦的情况下删除此行吗?或者symfony3中的等效代码是什么?

Jib*_*ato 15

在Symfony3中,您必须@Assert\Valid在父实体中使用约束.您可以删除'cascade_validation' => trueFormType类中的行.

class Author
{
    /**
     * @Assert\Valid
     */
    protected $address;
}
Run Code Online (Sandbox Code Playgroud)

http://symfony.com/doc/current/reference/constraints/Valid.html


小智 13

只需更换

'cascade_validation' => true, 

with 

'constraints' => new \Symfony\Component\Validator\Constraints\Valid(),


Alv*_*unk 0

错误消息告诉您对实体进行验证,但从您的代码中我不确定您的实体是什么。此链接解释了实体的有效注释

但您应该能够从表单中删除“cascade_validation' => true”。我担心您仍然可能会遇到其他错误。

尝试一下,看看会发生什么。您可能还想查看此验证教程以供参考。