如何在 laravel 控制器中获取数据作为关联数组,如 pg_fetch_assoc?
How to fetch data as association array like pg_fetch_assoc in laravel controller?
当我使用 pg_fetch_assoc 时,我的输出如下
[{"0":"T","id":"I","1":"T-ABC"},
{"0":"T","id":"I","1":"T-XYZ"},
{"0":"T","id":"I","1":"T-QWR"}]
但现在我正在使用 Laravel 框架并且在我的控制器中使用以下代码
$type=$request->type;
$query= typeModel::get()->where('id',$type);
return response()->json($query);
The above code is give me below format
{"11":{"id":"I","type":"T-ABC"},
"12":{"id":"I","type":"T-XYZ"},
"13":{"id":"I","type":"T-OWR"}}
But I need format like pg_fetch_assoc How can i achieve this in
laravel
使用eloquent集合方法map()
映射每个stdClass;
因为pg_fetch_assoc
return 列名, 列值, 索引键 和 索引值;
所以我们可以使用array_merge
合并两个数组。
一个是$array1
包括列名,列值;
另一个是$array2
只有列的所有值;
将数组转换为stdClass,它会自动在那个$array2
上添加索引键,这个索引键从0
:[=18开始=]
$query = typeModel::where('id',$type)->get()->map(function($item) {
$array1 = $item->toarray();
$array2 = array_values($array1);
return (object) array_merge($array1, $array2);
})->toArray();
当我使用 pg_fetch_assoc 时,我的输出如下
[{"0":"T","id":"I","1":"T-ABC"},
{"0":"T","id":"I","1":"T-XYZ"},
{"0":"T","id":"I","1":"T-QWR"}]
但现在我正在使用 Laravel 框架并且在我的控制器中使用以下代码
$type=$request->type;
$query= typeModel::get()->where('id',$type);
return response()->json($query);
The above code is give me below format
{"11":{"id":"I","type":"T-ABC"},
"12":{"id":"I","type":"T-XYZ"},
"13":{"id":"I","type":"T-OWR"}}
But I need format like pg_fetch_assoc How can i achieve this in laravel
使用eloquent集合方法map()
映射每个stdClass;
因为pg_fetch_assoc
return 列名, 列值, 索引键 和 索引值;
所以我们可以使用array_merge
合并两个数组。
一个是$array1
包括列名,列值;
另一个是$array2
只有列的所有值;
将数组转换为stdClass,它会自动在那个$array2
上添加索引键,这个索引键从0
:[=18开始=]
$query = typeModel::where('id',$type)->get()->map(function($item) {
$array1 = $item->toarray();
$array2 = array_values($array1);
return (object) array_merge($array1, $array2);
})->toArray();