导出CSV不能将stdClass类型的对象用作数组

时间:2019-05-24 11:28:17

标签: php arrays json laravel

我想将数据从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 个答案:

答案 0 :(得分:2)

作为对象,可以使用->运算符

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

应该工作。

答案 1 :(得分:1)

我假设您正在尝试根据2条where子句吸引用户。

如果是这样,请尝试

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

然后更改这些行

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

以此类推。

答案 2 :(得分:1)

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'];
    }
}

尝试一下,它应该可以工作。