آرمین
3 سال پیش توسط آرمین مطرح شد
3 پاسخ

نمايش نمودار تغييرات قيمت در لاراول

سلام
براي نمايش نمودار تغييرات قيمت يك محصول اين نمودار كه سمت فرانت بايد ساخته شه كه باهاش كاري نداريم.
در سمت بك اند قضيه با لاراول و ديتابيس mysql بايد يك جدول تغيير قسمت بسازيم و وصلش كنيم به جدول محصول
خب ما از updated_at در ديتابيس يكبار ميتونيم استفاده كنيم پس چطوري تغييرات قيمت محصول مثلاً در ١٠ روز رو بگيريم و با api به فرانت بديم تا تو نمودار نشونش بده؟
تشكر


ثبت پرسش جدید
Muhammad
تخصص : Back-End Developer
@muhammad 3 سال پیش مطرح شد
1

سلام. updated_at فقط تاریخ ویرایش یک رکورد رو قراره نگه‌داری کنه. برای ثبت تغییرات باید به ازای هر قیمت یه رکورد جدید داشته باشین. بعد کوئری می‌زنین بر اساس created_at . البته نمی‌دونم دیجی‌کالا و بقیه چیکار می‌کنن، شاید اونها تغییرات رو به صورت دیگه‌ای ذخیره کنن.


moha li
تخصص : توسعه دهنده لاراول و Vue
@mohaligateway 3 سال پیش مطرح شد
1

سلام
شما یک جدول مخصوص price ایجاد کنید که یه رابطه one to many با جدول product داشته باشه. داخل هر سطر این جدول براساس تاریخ created_at می تونید اطلاعات رو ذخیره کنید و بر این اساس اطلاعات را بر گردونید. به نظرم برای اینکه سرعت دسترسی اطلاعات برای نمایش به مشتری بالاتر بره و ارتباط بین جدولی به وجود نیاد می تونید اخرین قیمت رو داخل product همیشه داشته باشید.
@arminbeik


Mohsen Etmd
@mohsenetmd 3 سال پیش مطرح شد
1

شما برای این مشکل دو راه حل دارین در روش اول شما می تونید هنگام آپدیت یک رکورد در پایگاه داده ایجاد کنید من برای لاگ گرفتن از همه تغییرات ایگاه داده این کار رو انجام دادم کاری که انجام باید بدین مانند کد زیر هست

        static::updating(function ($model){
            LogDatabase::create([
                "model" => static::class,
                "reference_id" => $model->id,
                "user_panel_id" => Auth::guard("user_panel")->check() ? Auth::guard("user_panel")->user()->user_id : 0,
                "user_id" => Auth::guard("api")->check() ? Auth::guard("api")->user()->user_id : 0,
                "type" => "update",
                "data" => json_encode($model),
            ]);

من در اینجا همه تغییرات آپدیت در همه مدل ها رو ذخیره می کنم شما می تونید فقط تغییرات قیمت رو ذخیره کنید.
روش دیگر هم استفاده از trigger function mysql است از این روش هم من استفاده کردم جفتشون یک سری مزایا و معایب دارن تریگر فانکشن به نظر من بهتره ولی مشکلی که داره این هست که کد php نیست و خارج از لاراول هست.


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

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