Symfony2 validation does not work when Entity Relationships / Associations

controller

public function indexAction(Request $request) { $user = $this->container->get('security.context')->getToken()->getUser(); $owner = $user->getId(); $first = new First(); $first->setOwner($owner); $second = new Second(); $second->setOwner($owner); $second->setFirst($first); $form = $this->createForm(new SecondType(), $second); if ($request->getMethod() == 'POST') { $form->bindRequest($request); if ($form->isValid()) { $em = $this->get('doctrine')->getEntityManager(); $em->persist($first); $em->persist($second); $em->flush(); } } return $this->render('MySampleBundle:Home:index.html.twig', array( 'form' => $form->createView(), )); } 

ORM Yaml

 My\SampleBundle\Entity\First: type: entity table: first id: id: type: integer generator: { strategy: AUTO } fields: title: type: string date_created: type: datetime date_edited: type: datetime owner: type: integer lifecycleCallbacks: prePersist: [ prePersist ] preUpdate: [ preUpdate ] oneToMany: reviews: targetEntity: Second mappedBy: review My\SampleBundle\Entity\Second: type: entity table: second id: id: type: integer generator: { strategy: AUTO } fields: review: type: string date_created: type: datetime date_edited: type: datetime owner: type: integer lifecycleCallbacks: prePersist: [ prePersist ] preUpdate: [ preUpdate ] manyToOne: first: targetEntity: First inversedBy: reviews joinColumn: name: first_id referencedColumnName: id 

Shape / type

 class FirstType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('title', 'text'); } public function getDefaultOptions(array $options) { return array( 'data_class' => 'My\SampleBundle\Entity\First', ); } public function getName() { return 'first'; } } class SecondType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('first', new FirstType()); $builder->add('review', 'textarea'); } public function getName() { return 'second'; } } 

Validation.yml

 My\SampleBundle\Entity\First: properties: title: - NotBlank: ~ - MinLength: 2 My\SampleBundle\Entity\Second: properties: review: - NotBlank: ~ - MinLength: 14 

The created form works fine. However, only verification does not work normally.

If it is done individually, the check will work fine.

 $form = $this->createForm(new FirstType(), $first); 

However, if it is in the Entity Relationships / Associations state, the first check will not work. The first title property in one character will be registered.

How can I achieve this?

+7
source share
1 answer

Symfony 2.1+ does not automatically scan all embedded objects. You need to put the Valid constraint in the first field so that it is also checked:

 My\SampleBundle\Entity\Second: properties: first: - Valid: ~ 
+14
source

All Articles