我有一個接收API數據的類,我想將所有響應包裝到集合類中。所以,我從API調用接收數據,將它變成一個普通的關聯php數組,然後使用幫助器將其包裝起來。將關聯數組轉換爲類似於Eloquent查詢集合的集合
我只是期待它的工作就像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]',
'phone' => '(123) 456-7890',
'role' => 'Administrator',
'active_orders' => 3
]
];
$response = collect($data);
我想能夠集合中來包裝這一數據,並使用它像這樣:
$response->data->address->street
或$response->data->first_name
但是,我得到一個錯誤,說Property [data] does not exist on this collection instance.
我必須參考它像一個數組,如果我想訪問它。例如。 $response['data']['first_name']
。如果我想使用這種語法,我會保持它作爲一個數組。
如何遞歸設置我的集合屬性作爲數組鍵名,這樣我就可以像使用Eloquent查詢那樣使用它了?
你是如何得到這個迴應的?如果你是'json_decode'作爲HTTP請求的結果,你可以改爲'json_decode'返回一個'StdClass'對象表示而不是數組。這將允許您參考您打算提供的數據。 –