【发布时间】:2018-01-04 18:52:25
【问题描述】:
当尝试为我的数据库播种时会发生这种情况:
Seeding: UsersTableSeeder
array (
'name' => 'Tester One',
'email' => 'testerone@gmail.com',
'password' => 'Testing123',
Tester Two',esterone.png
)
数组的最后一个值显示下一个测试者的名字,第一个测试者的图像的第一个字符由于某种原因被截断。下一个测试人员甚至没有播种。当我查看数据库时,最后一列(名为“头像”)显示了整个图像文件(因此 testerone.png 而不是esterone.png)以及测试员二的名称。
这是我的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,testerone@gmail.com,Testing123,testerone.png
Tester Two,testertwo@gmail.com,Testing123,testertwo.jpg
Tester Three,testerthree@gmail.com,Testing123,testerthree.jpg
Tester Four,testerfour@live.be,Testing123,testerfour.jpg
Testert Five,testerfive@hotmail.com,Testing123,testerfive.jpg
Tester Six,testersix@stubru.be,Testing123,testersix.jpg
如果有人可以帮助我,那就太好了!
【问题讨论】:
-
您的 CSV 似乎有问题。你能把测试员一和测试员二的台词贴出来吗?
-
嗨@flip,用 csv 文件更新了!
-
抱歉,你能在文本编辑器(记事本或 gedit)中打开它并查看原始格式吗?
-
我添加了原始格式!
-
很高兴您修复了它。我猜是某个隐藏字符(如换行符)让读者认为该行过早结束。
标签: mysql database laravel csv seeding