我在 Symfony 中获得了一个表单,但它不会验证,我不知道为什么。
来自 UserBundle/Entity/Task.php
/**
*
* @ORM\ManyToMany(targetEntity="Project\TaskBundle\Entity\Task", inversedBy="users")
* @ORM\JoinTable(name="project_users_tasks")
*
*/
protected $tasks;
来自我的表单生成器 UserBundle/Form/CreateUserFormType.php:
$builder->add('tasks', 'entity', array(
'class' => 'TaskBundle:Task',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('b')
->andWhere('b.owner = :owner')
->setParameter('owner', $this->securityContext->getToken()->getUser())
->addOrderBy('b.updated', 'ASC');
},
'expanded' => false,
'multiple' => false
));
我浏览器中的发布请求:
------WebKitFormBoundary6IBT2Ycy78N9AI7u
Content-Disposition: form-data; name="createUser[tasks][]"
14
我得到的表单结果是有关任务的错误:“此值无效”
我没有得到任何其他验证。那么为什么不能将任务 14(例如清洁盘子)分配给我的用户?我的意思是任务的 id 应该工作还是不工作?
编辑: Symfony 似乎无法识别数据,这就是原因。$form->getData() 的 print_r;
[tasks:protected] => Doctrine\Common\Collections\ArrayCollection Object
(
[_elements:Doctrine\Common\Collections\ArrayCollection:private] => Array
(
)
)
但怎么可能呢?我可以看到我的浏览器正在发布数据。