راکت
حل شده

جستجوی پیشرفته در لایووایر بر اساس چندین فیلد

3 پاسخ

من برای ساخت کوئری از DB::table استفاده میکنم و 3 جدول رو جوین میکنم
توی صفحه ی جستجو ، 4 تا رادیو باتن دارم و چهار تا فیلد که اگه هر کدوم پر باشه ، باید بر اساس اون فیلدها سرچ رو انجام بدم و paginate هم بکنم
دوستان میتونن راهنمایی کنن ؟

ثبت پرسش جدید

پاسخ‌ها

3
محمد رضا
محمد رضا
@salar.mohammad2013

تخصص: Full Stack Developer

بهترین پاسخ

سلام دوست عزیز
به چند روش میتونی انجام بدی کارتو
یک where بزاری و توی اون شروط چک کردن داشته باشی که اگر نیاز بود where بشه مثل کد زیر

->where(function ($query) use ($meals){
                    if ($meals->on_breakfast){
                        $query->orWhere('on_breakfast',$meals->on_breakfast);
                    }
                    if ($meals->on_lunch){
                        $query->orWhere('on_lunch',$meals->on_lunch);
                    }      
                })

میتونی کدت رو get نکنی و بریزی توی یک متغییر و در ادامه مرحله مرحله به کدت where اضاف کنی

            if ($this->status){
                $orders=$orders->where('status',$this->status);
            }
            if ($this->payment_type){
                $orders=$orders->where('payment_type',$this->payment_type);
            }

و در اخر که کارت با چک کردن تموم شد کدت رو اجرا کنی شرط هاشو

 $orders=$orders->orderBy('id','desc')->paginate($this->paginate);

شما تا وقتی دستور paginate و یا get و این ها رو اجرا نکنی کدت به صورت query هست و منتظر دریافت دستورات بیشتر
میتونی توی چند خط و شرط هی به کدت شرط بدی و اخر اجراش کنی

رایموند
رایموند
@Raymond

تخصص: مختصص وردپرس - برنامه نویس لاراول

jafar
jafar
@jafarpalideh

ممنون . دیده بودمش . ولی من از مدل استفاده نمیکنم
از DB::table استفاده میکنم .
مشکل من اینه

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

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

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