سید حسین رضوی
5 سال پیش توسط سید حسین رضوی مطرح شد
13 پاسخ

مدیریت فیلترهای یک فروشگاه

سلام خدمت دوستان
به نظر شما چطوری این فرم رو مدیریت کنم که نیاز نباشه condition های زیادی رو بنویسم
فیلتر ها
اون سلکت باکس ها هر کدوم سه حالت مختلف دارند
در حالت کلی 4 condition داریم و داخل هر کدوم باز یک سری دیگه condition قرار میگیره، حالا پیشنهاد شما چیه این تعداد condition نداشته باشیم
توضیح: فرم امکان تغییر نداره، یعنی اینکه بخوام ایجکس روی تک تک موارد فیلتر رو اجرا کنم نیست


ثبت پرسش جدید
محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 5 سال پیش مطرح شد
1

@hossein.r.1442
سلام.
پیشنهاد میکنم از Pipe line ها استفاده کنید. خیلی سریع و ساده می تونید فیلتر هاتون رو ایجاد و مدیریت کنید. لینک زیر بهتون کمک میکنه:
https://bit.ly/354gXk5


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

میتونی یه کلاس Filter بسازی
ترجیحا Abstract باشه
و اون ۴ condition رو به عنوان ساب کلاس ها پیاده کنی


سید حسین رضوی
تخصص : برنامه نویس وب و طراح رابط کار...
@hossein.r.1442 5 سال پیش مطرح شد
1

@mohsenbostan @ali.bayat
ممنون از هر دو عزیز
پاسخ هر دو عزیز یکی بود تقریبا فقط آقای بوستان کاملتر فرمودند که منم پاسخ ایشون رو به عنوان بهترین پاسخ انتخاب مکینم


سید حسین رضوی
تخصص : برنامه نویس وب و طراح رابط کار...
@hossein.r.1442 5 سال پیش مطرح شد
0

@mohsenbostan @ali.bayat
ببخشید یه موضوع دیگه ما توی جدول فروشگاه یه قیمت و یه تخفیف داریم که محصولی دارای تخفیف قیمت نهایی کمتر خواهد بود از قیمتی که در سیستم ثبت شده
مثال:
محصول اول - - > قیمت 36000 - - > تخفیف 0
محصول دوم - - > قیمت 37000 - - > تخفیف 15%
و در فرانت داریم
محصول اول 36000 / محصول دوم 31450
خوب الان ما اگه مرتب سازی بر اساس کمترین قیمت داشته باشیم اول محصول اول بعد محصول دوم رو نمایش میده در صورتی که صحیح نیست
چطور فیلتری قرار بدیم که روی قیمتی که در فرانت داریم اعمال بشه


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 5 سال پیش مطرح شد
1

@hossein.r.1442
میتونید یک متد بنویسید که قیمت نهایی رو روی همه داده ها اعمال کنه ( میتونید مپ کنید ).
و بعد فیلتر رو روی لیست جدید انجام بدید.


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

میتونی سمت سرور داده ها رو به شکلی که میخواهی sort کنی و سمت فرانت نمایش بدی

یا اینکه میتونی قیمت های اصلی محصولات + درصد تخفیف رو بفرستی سمت فرانت و اونجا محاسبه کنی و Sort کنی

من ترجیح میدم این کار رو سمت سرور انجام بدم.
میشه قیمتهای نهایی رو در یک کالکشن اضافه کرد و اون کالکشن رو Sort کرد و به ویو پاس داد


سید حسین رضوی
تخصص : برنامه نویس وب و طراح رابط کار...
@hossein.r.1442 5 سال پیش مطرح شد
0

@mohsenbostan @ali.bayat
آیا توی لاراول میشه به راحتی یه view داخل mysql ایجاد کرد؟ که من کوئری ها رو روی اون اعمال کنم؟ اگه آره سرنخش چیه؟


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

منظورتون رو از view داخل mysql متوجه نشدم


سید حسین رضوی
تخصص : برنامه نویس وب و طراح رابط کار...
@hossein.r.1442 5 سال پیش مطرح شد
0

@ali.bayat
توی دیتابیس ما میتونیم یک سری کوئری ها رو تبدیل به شبه جدول کنیم دیگه درسته؟ که بهش میگن view به عنوان مثال همین موردی که من گفتم بیام یک view ایجاد میکنم دقیقا با همون ستون های داخل جدول محصول به اضافه یک ستون اضافه که قیمت نهایی داخلش ثبت بشه یعنی قیمت - تخفیف حالا من توی لاراول وقتی میخوام بنویسم

$products = Product::all();

به جای مدل product از اون view استفاده کنم.
نمی دونم تونستم منظورمو برسونم یا نه
اینجا منظورمو قشنگ رسونده 😄🤣
https://gnutec.net/view-in-mysql/


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

@hossein.r.1442
آهان ..بله این هم میتونه راهی باشه

اما میتونی یه Accessor هم به مدلت اضافه کنی که اون کار محاسبه رو انجام بده و یه فیلد به همون جدول محصول اضافه کنی... یا حتی ۲ تا فیلد .. یکی برای قیمت واقعی و یکی برای قیمت با تخفیف
https://laravel.com/docs/7.x/eloquent-mutators#defining-an-accessor


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 5 سال پیش آپدیت شد
0

Mysql ویو نداره مثه sql server


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 5 سال پیش مطرح شد
0

@hossein.r.1442
می تونید توی مدلتون یه Scope تعریف کنید که قیمت نهایی رو حساب کنه و اون رو همراه با دیتا برگشت بده و خیلی ساده بر اساس اون قیمت کار کنید. به نظرم این روش منطقی تر و سریع تره.


سید حسین رضوی
تخصص : برنامه نویس وب و طراح رابط کار...
@hossein.r.1442 5 سال پیش مطرح شد
0

@juza66
سلام چرا داره چطور ممکنه؟ من خودم توی php خام استفاده کردم
https://www.mysqltutorial.org/mysql-views/mysql-alter-view/


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

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