В настоящее время я могу вернуть данные только для таблицы заказов, например.
{
"data": [
{
"id": 1,
"external_id": 1,
"refer_order_id": 1364116832365,
...
},
Мне нужно также вернуть данные, относящиеся к этой таблице. В Artisan Tinker это делается следующим образом ...
$order = App\Order::first();
$order->carts;
Это даст тележки, связанные с таблицей заказов.
Resource / Order.php
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection;
class Order extends ResourceCollection
{
/**
* Transform the resource collection into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'data' => $this->collection,
];
}
}
api.php
Route::get('/orders/bulkindex/', function () {
return new OrderCollection(Order::all());
});
Resources \ Cart.php
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection;
class Cart extends ResourceCollection
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'data' => $this->collection,
];
}
}
Я хотел бы вернуть данные примерно так ... С информацией о тележках, связанных с этими данными.
return [
'data' => $this->collection,
'carts' => CartResource::collection($this->carts),
];
Это вернет эту ошибку:
Исключительное свойство [тележки] не существует в этом экземпляре коллекции.