Я работаю с проектом Laravel 6.x, и мне нужно изменить формат ответа. Мне нужно поместить результаты своих отношений цен в поле prices
в ответе JSON.
У меня есть модель продукта со следующими отношениями:
public function sellingPrices() {
return $this->morphToMany(SellingPrice::class, 'product_variantables');
}
public function supplyingPrices() {
return $this->morphToMany(SupplyingPrice::class, 'product_variantables');
}
public function supplierListPrices() {
return $this->morphToMany(SupplierListPrice::class, 'product_variantables');
}
А вот текущий код с моего контроллера:
public function index() {
return Product::with([
'orderStatus',
'files',
'properties',
'sellingPrices',
'suppyingPrices',
'supplierListPrices',
])->get();
}
Конечно, это возвращает следующий результат:
{
"id": 1,
"name": "My Product",
"order_status": { ... },
"files": [],
"properties": [],
"selling_prices": [],
"supplying_prices": [],
"supplier_list_prices": []
}
Как лучше всего сказать Laravel Я хочу вернуть этот результат?
{
"id": 1,
"name": "My Product",
"order_status": { ... },
"files": [],
"properties": [],
"prices": {
"selling_prices": [],
"supplying_prices": [],
"supplier_list_prices": []
}
}
Как я могу поместить некоторые отношения в настраиваемое поле в ответе HTTP?