2013-07-15 4 views
0

Symfony에서 양식을 얻었지만 유효성을 검사하지 못하고 이유를 모르겠습니다. UserBundle/법인/Task.php에서Symfony2 형식 유효성 검사 -이 값이 유효하지 않습니다.

는 UserBundle/양식/CreateUserFormType.php에서

/** 
* 
* @ORM\ManyToMany(targetEntity="Project\TaskBundle\Entity\Task", inversedBy="users") 
* @ORM\JoinTable(name="project_users_tasks") 
* 
*/ 
protected $tasks; 

내 formbuilder 인 :

$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 
      )); 

브라우저에서 POST 요청 :

------WebKitFormBoundary6IBT2Ycy78N9AI7u 
Content-Disposition: form-data; name="createUser[tasks][]" 

14 

양식에 대한 결과는 작업과 관련된 오류입니다 : "This 값이 유효하지 않습니다. "

나는 그 어느 때까지 유효성을 확인하지 못했습니다. 그렇다면 작업 14 (예 : 요리를 깨끗하게하는 작업)를 내 사용자에게 할당 할 수없는 이유는 무엇입니까? 작업의 ID가 작동해야하는지 아닌지를 의미합니까?

편집 : Symfony가 데이터를 인식하지 못하는 것 같습니다. $ form-> getData()의 print_r;

[tasks:protected] => Doctrine\Common\Collections\ArrayCollection Object 
     (
      [_elements:Doctrine\Common\Collections\ArrayCollection:private] => Array 
       (
       ) 

     ) 

하지만 어떻게 될 수 있습니까? 내 브라우저가 데이터를 게시하고있는 것을 볼 수 있습니다.

+0

양식을 제출할 때 ID가 14 인 지점이 있습니까? – Ziumin

+0

죄송합니다. 오타가있었습니다. 실제로 작업이지만 예, 폼을 제출할 때 ID가 14 인 작업이 있습니다. –

+0

hm .. 현재 사용자입니다 (양식보기 및 양식 제출 작업시) id = 14 인 작업 소유자 – Ziumin

답변

0

제출 된 입력란 이름에 두 개의 대괄호가 너무 많이 표시됩니다. createUser[tasks][]createUser[tasks]이어야합니다. 엔티티 필드는 접힌 단일 값 엔티티 필드이기 때문에.

또한 Symfony의 요청 개체를 디버그하려고합니다. 다른 한편으로는, 당신이 정말로 하나 이상의 작업을 제출 true에 엔티티 필드에서 "여러"옵션을 설정을 원하는 경우 var_dump($request->request->get('createUser'))

array(
    'tasks' => 14, 
) 

처럼 뭔가를 반환해야합니다. 요청 데이터는 다음과 같아야합니다.

array(
    'tasks' => array(
     0 => 14, 
    ) 
) 
+0

어떻게 실패할지 확인할 수 있습니까? 양식 유효성 검사를위한 몇 가지 로그가 있습니까? – Aris

관련 문제