Пример #1
0
 public function testFlush()
 {
     $writer = new Writer();
     $writer->create(vfsStream::url('files/file4.csv'), ',', '"', '\\');
     $writer->writeAll([['header1', 'header2'], ['cell1', 'cell2']]);
     $data = $writer->flush();
     $writer->close();
     $this->assertTrue(is_string($data));
     $this->assertStringEqualsFile(vfsStream::url('files/file4.csv'), $data);
 }
Пример #2
0
 public function testFromCsvUpdate()
 {
     $userData = ['id' => 1, 'name' => 'abc', 'email' => '*****@*****.**', 'password' => 'pass'];
     $writer = new Writer();
     $writer->create($this->vfsRoot->getChild('file2.csv')->url());
     $writer->writeLine(array_keys($userData));
     $writer->writeLine($userData);
     $writer->close();
     $model = new class extends Model
     {
         use CsvImportable;
         protected $table = 'users';
         protected $fillable = ['name', 'email', 'password'];
     };
     $model->name = 'test';
     $model->email = '*****@*****.**';
     $model->password = '******';
     $model->save();
     $model->fromCsv($this->vfsRoot->getChild('file2.csv')->url());
     $item = $model->first();
     $this->assertEquals($userData['name'], $item->name);
     $this->assertEquals($userData['email'], $item->email);
     $this->assertEquals($userData['password'], $item->password);
 }
Пример #3
0
 public function toCsv()
 {
     $writer = new Writer();
     $writer->create();
     $data = $this->toArray();
     $writer->writeLine(array_keys($data));
     $writer->writeLine($data);
     $out = $writer->flush();
     $writer->close();
     return $out;
 }
Пример #4
0
 public function toCsv($setHeader = true)
 {
     $writer = new Writer();
     $writer->create();
     $data = $this->toArray();
     if (is_array(array_values($data)[0])) {
         if ($setHeader) {
             $writer->writeLine(array_keys($data[0]));
         }
         $writer->writeAll($data);
     } else {
         if ($setHeader) {
             $writer->writeLine(array_keys($data));
         }
         $writer->writeLine($data);
     }
     $out = $writer->flush();
     $writer->close();
     return $out;
 }