Laravel 资源将我的关联数组转换为标准数组
Posted
技术标签:
【中文标题】Laravel 资源将我的关联数组转换为标准数组【英文标题】:Laravel resource converting my associative array into a standard array 【发布时间】:2021-11-24 06:42:31 【问题描述】: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
时,我可以看到带有正确 ID 的 associations
正在打印。
0:
-> associations:
--> 2:
---> ['suppliers' => [], 'offices' => []]
但是,当我打印单个资源 (new Resource(item)
) 时,associations
数组变为标准数组。
associations:
-> 0:
--> ['suppliers' => [], 'offices' => []]
为什么会这样?有什么解决办法吗?
【问题讨论】:
你不是不久前问过这个吗? 【参考方案1】:您只需将->toArray(null)
添加到您的资源中,就像我之前尝试过的这个示例一样
BookingResource::collection($timeSlots)->toArray(null);
【讨论】:
这确实有效,但为什么呢?我的问题是它适用于集合但不适用于单一资源,(new BookingResource($timeSlot))->toArray(null);
为我工作
当你传递 null
时,它会删除外部数组,以便您轻松访问您的对象以上是关于Laravel 资源将我的关联数组转换为标准数组的主要内容,如果未能解决你的问题,请参考以下文章