0

symfony で csv ファイルからユーザーを作成しようとしています。LEAGUECSV を使用しています。

実行するとこのエラーが発生しますphp ./bin/console doctrine:fixtures:load

Notice: 未定義のインデックス: 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ファイルには、最初の列にすべてのインデックスがあります

4

1 に答える 1

0

レコードを連想配列として返す場合は、ヘッダー オフセットを指定する必要があります: 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
}
于 2020-03-03T19:35:43.560 に答える