LeagueCSV: неопределенный индекс для getRecords () - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь создать пользователей из CSV-файла в symfony. Я использую LEAGUECSV.

Я получаю эту ошибку при выполнении php ./bin/console doctrine:fixtures:load

Примечание: неопределенный индекс: FIRST_NAME

Это мой прибор :

class UserFixture extends Fixture
{
    private $encoder;

    public function __construct(UserPasswordEncoderInterface $encoder)
    {
        $this->encoder = $encoder;
    }

    public function load(ObjectManager $manager)
    {

            $reader = Reader::createFromPath('%kernel.root_dir%/../src/CSVDATA/dbigo.csv');

            foreach ($reader->getRecords() as $result) {
                $user = New User();

                $user->setUsername($result['FIRST_NAME'].$result['LAST_NAME']);

                $user->setPassword(
                    $this->encoder->encodePassword($user,$result['NATREG'])
                );
                $user->setEmail($result['EMAIL']);

                $manager->persist($user);
            }
            $manager->flush();
       }
}


Я пытался использовать fetchAssoc, но, очевидно, эта функция была удалена в обновленной версии LEAGUECSV

В моем файле csv в первом столбце есть все индексы

1 Ответ

0 голосов
/ 03 марта 2020

Вам необходимо указать смещение заголовка, если вы хотите, чтобы ваши записи возвращались в виде ассоциативного массива: https://csv.thephpleague.com/9.0/reader/#csv -records

$reader = Reader::createFromPath('%kernel.root_dir%/../src/CSVDATA/dbigo.csv');
$reader->setHeaderOffset(0);

foreach ($reader->getRecords() as $result) {
    // $result is now an associative array based on the header row
}
...