Экспорт CSV Невозможно использовать объект типа stdClass в качестве массива - PullRequest
0 голосов
/ 24 мая 2019

Я хочу экспортировать данные из моего JSON в CSV-файл, но я получаю эту ошибку Не могу использовать объект типа stdClass в качестве массива

Я хочу знать, пожалуйста, как я могу использовать его как массив

public function exportUsers()
	{
		$users = ServicePoint::all()->where("nature", "SP")->toArray();
		$users = ServicePoint::all()->where('statut','<>', 2);

		$arrayCsv = [];
		foreach ($users as $key => $line){
			$arrayCsv[$key][] = $line['name'];
			$arrayCsv[$key][] = $line['lastname'];
			$arrayCsv[$key][] = $line['email'];

		
		}

все может помочь, пожалуйста

Ответы [ 3 ]

1 голос
/ 24 мая 2019
public function exportUsers() {
    $users = ServicePoint::where("nature", "SP")->where('statut','<>', 2)
->all()->toArray();
    $arrayCsv = [];
    foreach ($users as $key => $line){
        $arrayCsv[$key][] = $line['name'];
        $arrayCsv[$key][] = $line['lastname'];
        $arrayCsv[$key][] = $line['email'];
    }
}

Попробуйте, это должно работать.

1 голос
/ 24 мая 2019

В качестве объекта он может быть доступен с оператором ->

foreach ($users as $key => $line) {
    $arrayCsv[$key][] = $line->name;
    $arrayCsv[$key][] = $line->lastname;
    $arrayCsv[$key][] = $line->email;
}

Должно работать.

1 голос
/ 24 мая 2019

Я предполагаю, что вы пытаетесь получить пользователей на основе 2 where предложений.

Если это так, попробуйте это

$users = ServicePoint::all()->where("nature", "SP")
                            ->where('statut','<>', 2)
                            ->get();

Затем измените эти строки

$arrayCsv[$key][] = $line->name;
$arrayCsv[$key][] = $line->lastname;

и т. Д.

...