«поле не существует» - ошибка при отправке формы - PullRequest
0 голосов
/ 14 декабря 2011

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

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

1 Ответ

0 голосов
/ 15 декабря 2011

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

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

Мне пришлось удалить токен csrf вот так

$form->get('teams')->remove('_token');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...