Merhaba,
Sorumu başlıkta tam ifade edememiş olabilirim ama Api Resource kısmında yardımınıza ihtiyacım var.
Vue JS ile istek atarak Laravel'den verileri aldığım bir Resource'um var.
ProductDetailResource.php
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Str;
class ProductDetailResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
// Kısaltmak için diğer alanları dahil etmiyorum
'priceHistories' => PriceHistoriesResource::collection($this->priceHistories),
];
}
}
PriceHistoriesResource.php
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Carbon;
class PriceHistoriesResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'price' => $this->price,
'date' => Carbon::parse($this->date)->format('d-m-Y'),
];
}
}
Product hasMany PriceHistories ( PriceHistory belongsTo Product) ilişkim var. PriceHistories ilişkisini bu şekilde alıyorum. Ancak bu senaryoda https://vue-chartjs.org/
eklentisini tam olarak çalıştıramıyorum.
Vue-JS tarafında aşağıdaki gibi göndermemi istiyor. Elimdeki veriyi aşağıdakine uygun dönüştürmeyi bir türlü başaramadım.
getChartData() {
this.DataSet = {
labels: [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December",
],
datasets: [
{
label: "Ürün Fiyatı",
backgroundColor: "#f87979",
data: [40, 20, 12, 39, 10, 40, 39, 80, 40, 20, 12, 11],
},
],
};
},
labels kısmına doğrudan dizi olarak tarihleri,
datasets dizisi altındaki data dizisine fiyatları getirmem gerekiyor.
Yardımcı olabilirseniz çok sevinirim, şimdiden teşekkür ederim.