Datei I "league/csv": "^8.2"
Paket für CSV-Export/Import verwenden und ich versuche, diesen Code Inhalt in einem CSV-Datei zu exportieren:Exportanteil in CSV
public function exportCSV($id)
{
$users= User::find($id);
$csv = \League\Csv\Writer::createFromFileObject(new \SplTempFileObject());
$csv->insertOne(\Schema::getColumnListing('users'));
foreach ($users as $user) {
$csv->insertOne($user->toArray());
}
$csv->output('users.csv');
}
Aber ich bin immer Fehler FatalErrorException: Call to a member function toArray() on boolean
.
Wenn ich dd($users)
mache, bekomme ich die Sammlung, nicht den booleschen Wert. Irgendeine Hilfe?
EDIT
Antwort des @Alexey Mezenin hat mir geholfen. Aber gibt es eine Möglichkeit, eine neue Spalte mit diesem Paket einzufügen? Ich habe es versucht:
$rows = [
[1, 2, 3],
['foo', 'bar', 'baz'],
'test',
];
$csv = \League\Csv\Writer::createFromFileObject(new \SplTempFileObject());
$csv->insertAll($rows);
$csv->output('users.csv');
Aber es fügt Daten in neue Zeile jedes Mal. Wie:
'1,2,3
foo, bar,baz
test
ich eine neue Spalte für jedes Array haben wollen ...
EDIT 2
Ich löste es mit:
$csv->setDelimiter(';');
Thx. Es hat geholfen, aber ich habe immer noch nicht, was ich brauche ... Übrigens. Ich habe meine Frage bearbeitet! – harunB10