نمایش نتایج 1 تا 2 از 2

نام تاپیک: انجام عملیات های فیلترینگ و جست و جو

  1. #1

    انجام عملیات های فیلترینگ و جست و جو

    سلام و خسته نباشید من در لاراول تازه کار هستم ولی سابقه چندسال php کار کردن رو دارم .

    قبلاْ در پروژه های php و زمانی که قصد نمایش اطلاعات رو در Table داشتم از پلاگین دیتا تیبل در پروژه هام استفاده می کردم و این پلاگین در قسمت server side قابلیت های خوبی داره که یکی از مزایاش اینه که کلیه عملیات های مربوط به filter و جست و جو رو خودش انجام میده و نیاز نیست شما کار خاصی انجام بدی . مثلا فیلتر روی قیمت و بعدش روی سال ساخت و ... خلاصه کلام اینکه الان به مقتضیات کارم قصد استفاده از اون پلاگین رو ندارم و با پروژه ای روبرو هستم که محصولات باید شبیه به دیجی کالا نمایش داده بشوند و بتوان همزمان چندین فیلتر رو روشون اعمال کرد (قیمت . برند . سال ساخت و ...) که طبیعتاْ این قضیه در بحث table جا نمیگیره حداقل در لایه نمایش با جدول سرو کار ندارم . بنا بر این ۲ تا سوال دارم

    ۱-آیا پلاگینی سراغ دارید که بشه عملیات های جست و جو و فیلتر رو خودش انجام بده و از نظر ظاهری هم چیزی مثل دیجی کالا ، دیوار باشه ؟

    ۲- فارغ از بحث نمایش آیا لاراول قابلیتی داره که بتونه چندفیلتر همزمان رو اعمال کنه یا باید دستی نوشته بشه ؟

  2. #2
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: انجام عملیات های فیلترینگ و جست و جو

    2 -فیلتر انجام دادن سخت نیست مثلا فرض کن یه تیبل داری به اسم users با این فیلد ها


    id , name , mobile , email


    یه همیچن کدی میشه


    function user(Request $request){

    $query = User::orderBy('id' , 'desc');
    if($request->input('name'))
    $query->where('name' , $request->input('name'));
    if($request->input('mobile'))
    $query->where('mobile' , $request->input('mobile'));
    $users = $query->paginate(10);
    }

    یا اگه بخای یجا شرط ها رو بفرستی

    function user(Request $request){

    $cond = [] ;
    if($request->input('name'))
    $cond[] = ['name' , $request->input('name') ];
    if($request->input('mobile'))
    $cond[] = ['mobile' , $request->input('mobile') ];

    $users = User::where($cond)->orderBy('id' , 'desc')->paginate(10);
    }


    اگرم بخای روی یک تیبل دیگه که با کلید خارجی به تیبل users وصله فیلتر انجانم بدی اول relation رو تعریف میکنی تو مدل مثلا تیبل user_profiles هم داری که توش مشخصات دیگر یوزر هستن


    function UserProfile (){
    return $this->hasOne(UserProfile::class );
    }


    بعد تو کوئریت میزنی


    if($request->input('somedata'))
    {
    $query->whereHas('UserProfile' , function($q) use ($request){
    $q->where('somedata' , $request->input('somedata'));
    });
    }



تاپیک های مشابه

  1. پاسخ: 1
    آخرین پست: یک شنبه 06 فروردین 1396, 09:01 صبح
  2. پاسخ: 2
    آخرین پست: جمعه 31 مرداد 1393, 10:12 صبح
  3. سوال: ساخت چند یوزر پس برای هاست و محدود کردن هاست برای نویسندگان هاست.
    نوشته شده توسط rezanic در بخش توسعه وب (Web Development)
    پاسخ: 0
    آخرین پست: شنبه 04 مرداد 1393, 21:07 عصر
  4. پاسخ: 7
    آخرین پست: سه شنبه 28 آذر 1391, 13:48 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •