我有一个正在接收 API 数据的类,我想将所有响应包装到一个集合类中。因此,我从 API 调用接收数据,将其转换为普通的关联 php 数组,并使用collect()
helper.
我本以为它能像 Eloquent 一样工作,你可以将键引用为集合属性,但事实并非如此。
以下是我将收到的响应数据的示例:
$data = [
'status' => 'SUCCESS',
'message' => 'Your request was received.',
'data' => [
'first_name' => 'John',
'last_name' => 'Doe',
'address' => [
'street' => '123 Main St.',
'city' => 'Any City',
'state' => 'TX',
'zip' => '12345',
'country' => 'USA'
],
'email' => '[email protected] /cdn-cgi/l/email-protection',
'phone' => '(123) 456-7890',
'role' => 'Administrator',
'active_orders' => 3
]
];
$response = collect($data);
我希望能够将这些数据包装在一个集合中并像这样使用它:
$response->data->address->street
or $response->data->first_name
但是,我收到一条错误消息Property [data] does not exist on this collection instance.
如果我想访问它,我必须像数组一样引用它。例如。$response['data']['first_name']
。如果我想使用该语法,我只需将其保留为数组即可。
如何递归地将集合属性设置为数组键名称,以便我可以像 Eloquent 查询一样使用它?