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);