Symfony:cascade_validation选项已弃用
问题描述:
我试图将我的项目从symfony2升级到symfony3。我想摆脱这种弃用警告Symfony:cascade_validation选项已弃用
The "cascade_validation" option is deprecated since version 2.8 and will be removed in 3.0. Use "constraints" with a Valid constraint instead."
下面的是我的代码
->add('student_name', 'collection', array(
'entry_type' => TextType::class,
'allow_add' => true,
'cascade_validation' => true,
'options' => array(
'required' => false
)
))
可我只是删除此行'cascade_validation' => true
而不会造成任何麻烦?或者symfony3中的等效代码是什么?
答
错误消息告诉您在实体上进行验证,但是从您的代码中我不确定您的实体是什么。 此链接解释Valid annotation for an Entity。
但是,您应该能够从表单中删除“cascade_validation = true”。我担心你仍然可能会遇到其他错误。
试试看看会发生什么。 您可能也想要查看此Validation tutorial以供参考。
答
在Symfony3中,您必须在父实体中使用@Assert\Valid
约束。您可以删除FormType类中的行'cascade_validation' => true
。
class Author
{
/**
* @Assert\Valid
*/
protected $address;
}
http://symfony.com/doc/current/reference/constraints/Valid.html
答
只需更换
'cascade_validation' => true, with 'constraints' => new \Symfony\Component\Validator\Constraints\Valid(),
从[迁移指南(https://github.com/symfony/symfony/blob/master/UPGRADE-3.0.md#form ):'cascade_validation选项已被删除。改为使用约束选项和有效约束 – Matteo