Laravel 将我的关联数组转换为标准数组的资源
Laravel resource converting my associative array into a standard array
PHP 7.4.16 & Laravel 8.61
我的 Resource
中有以下代码:
$arr = ['id' => $this->id, 'associations' => (object)[]];
foreach ($tas as $ta) {
$ta_id = $ta->id;
$arr['associations']->$ta_id = ['suppliers' => [], 'offices' => []];
}
return $arr;
其中 $ta->id
是一个整数。
当我打印一个项目的 Resource::collection
时,我可以看到 associations
以正确的 id 作为关键字被打印。
0:
-> associations:
--> 2:
---> ['suppliers' => [], 'offices' => []]
但是,当我打印单个资源 (new Resource(item)
) 时,associations
数组变为标准数组。
associations:
-> 0:
--> ['suppliers' => [], 'offices' => []]
为什么会这样?有什么解决方法吗?
您只需将 ->toArray(null)
添加到您的资源中,就像我之前尝试过的这个示例
BookingResource::collection($timeSlots)->toArray(null);
PHP 7.4.16 & Laravel 8.61
我的 Resource
中有以下代码:
$arr = ['id' => $this->id, 'associations' => (object)[]];
foreach ($tas as $ta) {
$ta_id = $ta->id;
$arr['associations']->$ta_id = ['suppliers' => [], 'offices' => []];
}
return $arr;
其中 $ta->id
是一个整数。
当我打印一个项目的 Resource::collection
时,我可以看到 associations
以正确的 id 作为关键字被打印。
0:
-> associations:
--> 2:
---> ['suppliers' => [], 'offices' => []]
但是,当我打印单个资源 (new Resource(item)
) 时,associations
数组变为标准数组。
associations:
-> 0:
--> ['suppliers' => [], 'offices' => []]
为什么会这样?有什么解决方法吗?
您只需将 ->toArray(null)
添加到您的资源中,就像我之前尝试过的这个示例
BookingResource::collection($timeSlots)->toArray(null);