제품이 하나 이상의 부서와 연관 될 수있는 제품 대 부서 테이블과 일대 다 관계가있는 제품 테이블이 있습니다.OneToMany 엔터티 폼 컬렉션의 유효성을 어떻게 검사합니까?
내 부서의 유효성을 검사하기 위해 새 제품을 추가 할 때 문제가 있습니다.
부서를 선택하지 않으면 양식이 유효성을 검사하고 제출합니다.
여기에 양식을 작성하는 곳이 있습니다. 그때하여 ProductDepartmentType에 다음을 추가하는 시도
class ProductDepartmentType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('department', 'entity', array(
'property' => 'indentedName',
'class' => 'WebIllumination\SiteBundle\Entity\Department',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('d')
->addSelect('dd')
->leftJoin('d.descriptions', 'dd')
->orderBy('d.displayOrder', 'ASC');
},
'required' => true,
'empty_value' => '- Select a Department -',
), array());
$builder->add('displayOrder', 'hidden');
}
public function getDefaultOptions(array $options)
{
$collectionConstraint = new Collection(array(
'department' => array(
new NotBlank(array('message' => 'Select a department.')),
),
));
return array(
'validation_constraint' => $collectionConstraint,
);
}
public function getName()
{
return 'site_product_department';
}
}
가 :
class NewProductType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('departments', 'collection', array(
'type' => new ProductDepartmentType(),
'required' => true,
));
...
컬렉션은 ProductDepartmentType 클래스를 통해 설정입니다
class ProductDepartmentType extends AbstractType
{
...
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'WebIllumination\SiteBundle\Entity\ProductToDepartment'
));
}
...
이 더 영향을했던 양식은 여전히 할 수 있습니다 유효성이 확인되지 않고 제출되었습니다.
아무도 내가이 필드의 유효성을 검사 할 수있는 방법을 찾도록 도와 줄 수 있습니까?
원래 생각했지만 별 차이가 없었습니다. –