سلام دوستان میخواهم برای کاربر یک چارت ایجاد کنم. این چارت این طور خواهد بود:
کاربر با شرکت در یک مسابقه و با حل کردن هر سوال به کاربر امتیازی داده خواهد شد.
میخواهم که این امتیازات دریافت شده کاربر در یک چارت نمایش بدم.
برای مثال همانند سایت : سایت کوئرا
چارت هم طبق chart.js و vue.js خواهد بود.
ممنون میشوم کمک کید.
@mohammad.ar
بله میتونید یک جدول برای امتیازات داشته باشید اما مجموعه امتیاز کاربر رو در یک فیلد در جدول کاربر قرار بدید هیچ وقت جمع کل امیتاز رو با محاسبه امتیازات از جدول امتیازات در صفحههای مختلف نشون ندید ! اما یعنی چی
برای مثال همین راکت یک شخص ۲۰۰ هزار تجربه داره که از امیتازهای کوچیک بدست اومده اگر بخوایم در هر صفحه این امتیاز رو نمایش بدیم و برای نمایشش بریم وارد جدول امتیاز بشیم و امتیازهای مربوط به این کاربر رو برگردونیم و جمع کنیم
حجم زیادی از اطلاعات میشه حالا در پروژه های بزرگتر بدتر میشه این داستان
بجاش کاربر مورد نظر یک فیلد داره در جدول کاربران که هر امتیازی که میگیره در کنار اینکه به جدول امتیاز اضافه میشه در اون فیلد هم جمع میشه . و در هر صفحهای به امتیاز کلیش نیاز باشه اون فیلد صدا زده میشه
شاید پاسخ شما همینجا باشد
@mohammad.ar خب میتونید امتیاز ها رو داخل یه متغیر بریزید و اگه بتونید مستندات chartJS رو بخونید خیلی خوبه
اگع نمیتونید بخونید توی یوتیوب Traversy media به صورت خیلی ساده توضیح داده
@cfarhad
دوست عزیز بی نهایت ممنون!
فقط می خواستم بدونم واسه امتیاز هم ی مدل بسازم!
@hesammousavi
اوکی فهمیدم . ممنون
@hesammousavi
آقای موسوی گفته بودید که
یک جدول برای امتیازات داشته باشید اما مجموعه امتیاز کاربر رو در یک فیلد در جدول کاربر قرار بدید هیچ وقت جمع کل امیتاز رو با محاسبه امتیازات از جدول امتیازات در صفحههای مختلف نشون ندید ! اما یعنی چی
برای مثال همین راکت یک شخص ۲۰۰ هزار تجربه داره که از امیتازهای کوچیک بدست اومده اگر بخوایم در هر صفحه این امتیاز رو نمایش بدیم و برای نمایشش بریم وارد جدول امتیاز بشیم و امتیازهای مربوط به این کاربر رو برگردونیم و جمع کنیم
حجم زیادی از اطلاعات میشه حالا در پروژه های بزرگتر بدتر میشه این داستان
بجاش کاربر مورد نظر یک فیلد داره در جدول کاربران که هر امتیازی که میگیره در کنار اینکه به جدول امتیاز اضافه میشه در اون فیلد هم جمع میشه . و در هر صفحهای به امتیاز کلیش نیاز باشه اون فیلد صدا زده میشه
منم همچین کردم. امتیاز های کاربر رو برمیگردونم فقط lables به این شکله :
<div class="card-header card-header-success">
<div class="ct-chart" id="dailySalesChart">
<user :values="[0,0,0,0,0,0,0,0,0,0,0,0]" :labels="["\u0641\u0631\u0648\u0631\u062f\u06cc\u0646","\u0627\u0631\u062f\u06cc\u0628\u0647\u0634\u062a","\u062e\u0631\u062f\u0627\u062f","\u062a\u06cc\u0631","\u0645\u0631\u062f\u0627\u062f","\u0634\u0647\u0631\u06cc\u0648\u0631","\u0645\u0647\u0631","\u0622\u0628\u0627\u0646","\u0622\u0630\u0631","\u062f\u06cc","\u0628\u0647\u0645\u0646","\u0627\u0633\u0641\u0646\u062f"]"></user>
</div>
</div>
کد های منم :
$month = 12;
$score = auth()->user()->score()->latest()->get();
$labels = $this->getLastMonth($month);
$values = $this->CheckCount($score->pluck('published') , $month);
private function getLastMonth(int $month){
for ($i = 0 ; $i < $month ; $i++){
$labels[] = jdate(Carbon::now()->subMonth($i))->format('%B');
}
return array_reverse($labels);
}
private function CheckCount($count, int $month){
for ($i = 0; $i < $month ; $i++){
$new[$i] = empty($count[$i]) ? 0 : $count[$i];
}
return array_reverse($new);
}
و چارت نمایش داده نمیشه.
@hesammousavi
میشه کمک کنید. ممنون