2013-02-12 3 views
1

제품이 하나 이상의 부서와 연관 될 수있는 제품 대 부서 테이블과 일대 다 관계가있는 제품 테이블이 있습니다.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' 
     )); 
    } 
... 

이 더 영향을했던 양식은 여전히 ​​할 수 있습니다 유효성이 확인되지 않고 제출되었습니다.

아무도 내가이 필드의 유효성을 검사 할 수있는 방법을 찾도록 도와 줄 수 있습니까?

답변

관련 문제