Как объяснить эту проблему и каким должно быть лучшее решение для Symfony serializer / csv decoder - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь сделать простой загрузчик CSV с контактами и сделать их массивом, используя сериализатор Symfony / кодировщик CSV.Проблема в том, что когда я получаю данные из csv и выкидываю их, я получаю все нормально, я думаю.Но когда я хочу перебрать массив для отображения поля электронной почты или попытаться создать новые объекты и сохранить их в базе данных, я получаю сообщение об ошибке, что индекс «Адрес электронной почты» не определен.Как это возможно, если, когда я var_dump в цикле и умираю после первого массива в списке, я вижу, что поле 'Адрес электронной почты' существует.

Ссылка на изображение - https://imgur.com/a/7bSJT0z

 /**
 * @Route("/upload-csv", name="upload")
 */
public function uploadCsv(Request $request)
{
    $form = $this->createForm(ContactType::class);
    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid())
    {
        $em = $this->getDoctrine()->getManager();
        $data = $form->getData();
        $file = $data->getCsv();

        //dump($file);

        $serializer = $this->container->get('serializer');

        $cons = $serializer->decode(file_get_contents($file), 'csv');

        foreach ($cons as $con)
        {
            $contact = new Contact();
            $contact->setEmail($con['Email Address']);
            $contact->setFirstName($con['First Name']);
            $contact->setLastName($con['Last Name']);            
            $contact->setCountry($data->getCountry());

            $em->persist($contact);
        }

        $em->flush();
    }

    return $this->render('base.html.twig', [
    'form' => $form->createView()
    ]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...