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
(
)
)
しかし、それはどうしてですか?ブラウザがデータを投稿していることがわかります。