2011-12-13 2 views
0

У меня есть этот код в моем «новом действии» контроллера Challenge. Это бросает мне ошибку «поле player_one не существует», когда я отправляю свою форму Challenge.«Поле не существует» -error при отправке формы

if ($form->isValid()) 
{  
    foreach($form->get('teams') as $team_form) 
    { 
     $player_one = $team_form->get('player_one')->getData(); 
     $player_two = $team_form->get('player_two')->getData(); 

     $user_one = $this->getDoctrine()->getRepository('TennisconnectUserBundle:User')->findOneByUsername($player_one); 
     $user_two = $this->getDoctrine()->getRepository('TennisconnectUserBundle:User')->findOneByUsername($player_two); 

     // Add user(s) to the two teams 
     foreach($challenge->getTeams() as $i => $team) 
     { 
      // First team 
      if($i == 0) 
      { 
       if($user_one) 
       { 
        $team->addUser($user_one);         
       } elseif($user_two) 
       { 
        $team->addUser($user_two); 
       } 
      } 
      // Second team 
      elseif($i == 1) 
      { 
       if($user_one) 
       { 
        $team->addUser($user_one);         
       } elseif($user_two) 
       { 
        $team->addUser($user_two); 
       } 
      } 
     } 
    } 

    $em = $this->getDoctrine()->getEntityManager(); 
    $em->persist($challenge); 
    $em->flush();    

    return $this->render('TennisconnectDashboardBundle:Default:index.html.twig', array('form' => $form->createView(), 'user' => $user)); 
} 

Но когда я отладки "$ Player_One", это дает мне правильное значение из текстового поля:

$player_one = $team_form->get('player_one')->getData(); 
die($player_one); 
+0

код, который вы публикуемые не кажется, отношения к задаваемому вопросу. Код, который вы отправили, будет выполняться, если проверка формы прошла успешно, и вы говорите, что это не так. Нам нужно увидеть, что происходит внутри метода isValid() формы. Так же как образцы $ _POST данных, представленных через указанную форму. –

+0

Я думаю, что это действительно так, потому что, когда я набираю 'die ("test")' внутри 'if (isValid())', а затем отправляю форму, он умирает и показывает сообщение 'test' – mattyh88

ответ

0

Нашли проблему. Когда я это сделал, он дал мне 3 в результате, пока я только добавлял 2 формы команды в форму запроса.

die(count($form->get('teams'))); 

я должен был удалить маркер CSRF как этого

$form->get('teams')->remove('_token'); 
Смежные вопросы