使用Laravel将CSV文件播种到数据库时文本被切断

问题描述 投票:-1回答:1

尝试播种我的数据库时会发生这种情况:

Seeding: UsersTableSeeder
array (
  'name' => 'Tester One',
  'email' => '[email protected]',
  'password' => 'Testing123',
Tester Two',esterone.png
)

数组的最后一个值显示下一个测试器的名称,并且由于某种原因,第一个测试器的图像的第一个字符被切断。接下来的测试人员甚至都没有播种。当我查看数据库时,最后一列(名为“avatar”)显示整个图像文件(所以testerone.png而不是esterone.png)以及Tester Two的名称。

这是我的UsersTableSeeder.php

use Illuminate\Database\Seeder;
use League\Csv\Reader;

class UsersTableSeeder extends Seeder
{

public function run()
{
    $path = resource_path() .'/postSeed/userseed.csv';
    $reader = Reader::createFromPath($path, 'r');

    $records = $reader->getRecords(['name', 'email', 'password', 'avatar']);
    foreach ($records as $offset => $record) {
        var_export($record);

        DB::table('users')->insert([
            'name' => $record['name'],
            'email' => $record['email'],
            'password' => bcrypt($record['password']),
            'created_at' => date("Y-m-d H:i:s"),
            'updated_at' => date("Y-m-d H:i:s"),
            'avatar' => $record['avatar'],
        ]);
    }
}
}

这就是我的CSV文件的样子:

Tester One,[email protected],Testing123,testerone.png
Tester Two,[email protected],Testing123,testertwo.jpg
Tester Three,[email protected],Testing123,testerthree.jpg
Tester Four,[email protected],Testing123,testerfour.jpg
Testert Five,[email protected],Testing123,testerfive.jpg
Tester Six,[email protected],Testing123,testersix.jpg

如果有人能帮助我,这将是伟大的!

mysql database laravel csv seeding
1个回答
0
投票

在看了一些网上后,我试着看看我的CSV文件是不是问题。我把它们放在CSV Editor and Viewer上并从那里重新加载它们突然似乎工作了。奇怪的。

© www.soinside.com 2019 - 2024. All rights reserved.