LeagueCSV:getRecords() 上的未定义索引
LeagueCSV: undefined index on getRecords()
我正在尝试从 symfony 中的 csv 文件创建用户。我正在使用 LEAGUECSV。
我在执行 php ./bin/console doctrine:fixtures:load
时遇到此错误
Notice: Undefined index: 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 文件在第一列中有所有索引
如果您希望记录作为关联数组返回,您需要指定 header 偏移量: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
}
我正在尝试从 symfony 中的 csv 文件创建用户。我正在使用 LEAGUECSV。
我在执行 php ./bin/console doctrine:fixtures:load
Notice: Undefined index: 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 文件在第一列中有所有索引
如果您希望记录作为关联数组返回,您需要指定 header 偏移量: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
}