راکت
حل شده

ساخت chart برای کاربر

8 پاسخ

سلام دوستان میخواهم برای کاربر یک چارت ایجاد کنم. این چارت این طور خواهد بود:
کاربر با شرکت در یک مسابقه و با حل کردن هر سوال به کاربر امتیازی داده خواهد شد.
میخواهم که این امتیازات دریافت شده کاربر در یک چارت نمایش بدم.
برای مثال همانند سایت : سایت کوئرا
چارت هم طبق chart.js و vue.js خواهد بود.
ممنون میشوم کمک کید.

yuwdsacasoicsd
yuwdsacasoicsd
@wenom
ثبت پرسش جدید

پاسخ‌ها

8
حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

بهترین پاسخ

@mohammad.ar
بله میتونید یک جدول برای امتیازات داشته باشید اما مجموعه امتیاز کاربر رو در یک فیلد در جدول کاربر قرار بدید هیچ وقت جمع کل امیتاز رو با محاسبه امتیازات از جدول امتیازات در صفحه‌های مختلف نشون ندید ! اما یعنی چی
برای مثال همین راکت یک شخص ۲۰۰ هزار تجربه داره که از امیتازهای کوچیک بدست اومده اگر بخوایم در هر صفحه این امتیاز رو نمایش بدیم و برای نمایشش بریم وارد جدول امتیاز بشیم و امتیازهای مربوط به این کاربر رو برگردونیم و جمع کنیم
حجم زیادی از اطلاعات میشه حالا در پروژه های بزرگ‌تر بدتر میشه این داستان
بجاش کاربر مورد نظر یک فیلد داره در جدول کاربران که هر امتیازی که میگیره در کنار اینکه به جدول امتیاز اضافه میشه در اون فیلد هم جمع میشه . و در هر صفحه‌ای به امتیاز کلیش نیاز باشه اون فیلد صدا زده میشه

حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

خوب امتیازها رو بگیرید در چارت به نمیاش در بیارید دیگه مشکلتون چیه این وسط ؟

yuwdsacasoicsd
yuwdsacasoicsd
@wenom

تخصص: برنامه نویس

@hesammousavi

ممنون پاسخ دادید تنها مشکلی که دارم این هست واسه ی امتیاز ها ی مدل و مایگرشن بسازم!

شاید پاسخ شما همین‌جا باشد

فرهاد
فرهاد
@cfarhad

تخصص: Javascript Developer

@mohammad.ar خب میتونید امتیاز ها رو داخل یه متغیر بریزید و اگه بتونید مستندات chartJS رو بخونید خیلی خوبه

اگع نمیتونید بخونید توی یوتیوب Traversy media به صورت خیلی ساده توضیح داده

yuwdsacasoicsd
yuwdsacasoicsd
@wenom

تخصص: برنامه نویس

@cfarhad
دوست عزیز بی نهایت ممنون!
فقط می خواستم بدونم واسه امتیاز هم ی مدل بسازم!

yuwdsacasoicsd
yuwdsacasoicsd
@wenom

تخصص: برنامه نویس

@hesammousavi
اوکی فهمیدم . ممنون

yuwdsacasoicsd
yuwdsacasoicsd
@wenom

تخصص: برنامه نویس

@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="[&quot;\u0641\u0631\u0648\u0631\u062f\u06cc\u0646&quot;,&quot;\u0627\u0631\u062f\u06cc\u0628\u0647\u0634\u062a&quot;,&quot;\u062e\u0631\u062f\u0627\u062f&quot;,&quot;\u062a\u06cc\u0631&quot;,&quot;\u0645\u0631\u062f\u0627\u062f&quot;,&quot;\u0634\u0647\u0631\u06cc\u0648\u0631&quot;,&quot;\u0645\u0647\u0631&quot;,&quot;\u0622\u0628\u0627\u0646&quot;,&quot;\u0622\u0630\u0631&quot;,&quot;\u062f\u06cc&quot;,&quot;\u0628\u0647\u0645\u0646&quot;,&quot;\u0627\u0633\u0641\u0646\u062f&quot;]"></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);
    }

و چارت نمایش داده نمیشه.

yuwdsacasoicsd
yuwdsacasoicsd
@wenom

تخصص: برنامه نویس

@hesammousavi
میشه کمک کنید. ممنون

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام