我有两个实体,“Page”和“Sections”。实体“Page”与实体“Section”具有oneToMany关系。
我创建了一个包含页面和部分集合的表单。我想验证一个页面至少有一个部分。
我在验证yml文件中尝试此操作。
App\MyBundle\Entity\Page:
properties:
sections:
- Valid: ~
是否存在可用于处理此问题的任何约束?或者我必须为此问题编写自己的验证器吗?
答案 0 :(得分:1)
如果您想看到您的网页至少有一个Section
,那么您必须查看Collection
部分是否大于0。
App\MyBundle\Entity\Page:
properties:
sections:
- Count: { min: 1, minMessage: "You need to have at least one Section" }
如果您想查看您的Section对象是否也有效,那么您需要为Section实体和PageType表单集cascade_validation => true
设置验证策略,如:
App\MyBundle\Entity\Section:
properties:
name:
- NotBlank
和你的FormType
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'App\MyBundle\Entity\Page',
'cascade_validation' => true,
));
}