0

我正在尝试从 symfony 中的 csv 文件创建用户。我正在使用 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 文件在第一列中包含所有索引

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 回答