سلام خدمت دوستان
به نظر شما چطوری این فرم رو مدیریت کنم که نیاز نباشه condition های زیادی رو بنویسم
اون سلکت باکس ها هر کدوم سه حالت مختلف دارند
در حالت کلی 4 condition داریم و داخل هر کدوم باز یک سری دیگه condition قرار میگیره، حالا پیشنهاد شما چیه این تعداد condition نداشته باشیم
توضیح: فرم امکان تغییر نداره، یعنی اینکه بخوام ایجکس روی تک تک موارد فیلتر رو اجرا کنم نیست
@hossein.r.1442
سلام.
پیشنهاد میکنم از Pipe line ها استفاده کنید. خیلی سریع و ساده می تونید فیلتر هاتون رو ایجاد و مدیریت کنید. لینک زیر بهتون کمک میکنه:
https://bit.ly/354gXk5
میتونی یه کلاس Filter بسازی
ترجیحا Abstract باشه
و اون ۴ condition رو به عنوان ساب کلاس ها پیاده کنی
@mohsenbostan @ali.bayat
ممنون از هر دو عزیز
پاسخ هر دو عزیز یکی بود تقریبا فقط آقای بوستان کاملتر فرمودند که منم پاسخ ایشون رو به عنوان بهترین پاسخ انتخاب مکینم
@mohsenbostan @ali.bayat
ببخشید یه موضوع دیگه ما توی جدول فروشگاه یه قیمت و یه تخفیف داریم که محصولی دارای تخفیف قیمت نهایی کمتر خواهد بود از قیمتی که در سیستم ثبت شده
مثال:
محصول اول - - > قیمت 36000 - - > تخفیف 0
محصول دوم - - > قیمت 37000 - - > تخفیف 15%
و در فرانت داریم
محصول اول 36000 / محصول دوم 31450
خوب الان ما اگه مرتب سازی بر اساس کمترین قیمت داشته باشیم اول محصول اول بعد محصول دوم رو نمایش میده در صورتی که صحیح نیست
چطور فیلتری قرار بدیم که روی قیمتی که در فرانت داریم اعمال بشه
@hossein.r.1442
میتونید یک متد بنویسید که قیمت نهایی رو روی همه داده ها اعمال کنه ( میتونید مپ کنید ).
و بعد فیلتر رو روی لیست جدید انجام بدید.
میتونی سمت سرور داده ها رو به شکلی که میخواهی sort کنی و سمت فرانت نمایش بدی
یا اینکه میتونی قیمت های اصلی محصولات + درصد تخفیف رو بفرستی سمت فرانت و اونجا محاسبه کنی و Sort کنی
من ترجیح میدم این کار رو سمت سرور انجام بدم.
میشه قیمتهای نهایی رو در یک کالکشن اضافه کرد و اون کالکشن رو Sort کرد و به ویو پاس داد
@mohsenbostan @ali.bayat
آیا توی لاراول میشه به راحتی یه view داخل mysql ایجاد کرد؟ که من کوئری ها رو روی اون اعمال کنم؟ اگه آره سرنخش چیه؟
@ali.bayat
توی دیتابیس ما میتونیم یک سری کوئری ها رو تبدیل به شبه جدول کنیم دیگه درسته؟ که بهش میگن view به عنوان مثال همین موردی که من گفتم بیام یک view ایجاد میکنم دقیقا با همون ستون های داخل جدول محصول به اضافه یک ستون اضافه که قیمت نهایی داخلش ثبت بشه یعنی قیمت - تخفیف حالا من توی لاراول وقتی میخوام بنویسم
$products = Product::all();
به جای مدل product از اون view استفاده کنم.
نمی دونم تونستم منظورمو برسونم یا نه
اینجا منظورمو قشنگ رسونده 😄🤣
https://gnutec.net/view-in-mysql/
@hossein.r.1442
آهان ..بله این هم میتونه راهی باشه
اما میتونی یه Accessor هم به مدلت اضافه کنی که اون کار محاسبه رو انجام بده و یه فیلد به همون جدول محصول اضافه کنی... یا حتی ۲ تا فیلد .. یکی برای قیمت واقعی و یکی برای قیمت با تخفیف
https://laravel.com/docs/7.x/eloquent-mutators#defining-an-accessor
@hossein.r.1442
می تونید توی مدلتون یه Scope تعریف کنید که قیمت نهایی رو حساب کنه و اون رو همراه با دیتا برگشت بده و خیلی ساده بر اساس اون قیمت کار کنید. به نظرم این روش منطقی تر و سریع تره.
@juza66
سلام چرا داره چطور ممکنه؟ من خودم توی php خام استفاده کردم
https://www.mysqltutorial.org/mysql-views/mysql-alter-view/
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟