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

فیلتر نتایج در لاراول

سلام ، وقتتون بخیر.

اگر بخوام یک لیست داده داشته باشم (مثلا یک کتابخانه) و روی این لیست بخوام فیلتر داشته باشم (مثل نام، نام نویسنده ، انتشارات و ...) و همچنین از پجینیشین لاراول استفاده کنم ، بهترین روش چیه ؟
(همون جستجو مد نظرمه)


ثبت پرسش جدید
رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 3 سال پیش مطرح شد
0

سلام اگر از این دستور استفاده می‌کنید!

$books->links("pagination::bootstrap-4);

میتونی اینکارو کنی

$books->appends(Request()->all())->links("pagination::bootstrap-4);

کد بالا پارامتر هارو هم اضافه میکنه به دکمه ها


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
حسن حکمتی
تخصص : برنامه نویس وب و بلاکچین
@hekmati 3 سال پیش آپدیت شد
2

سلام @afsharmahmoodian
ابتدا کوئری بزنید بعد بر اساس کلید در نظر گرفته شده برای جستجو، شرط ها رو به کوئری اضافه کنید.

$books = Book::query();
        if ($keyword = request('search'))
        {
            $books->where('name' , $keyword)->orWhere('writer' , 'LIKE' , "%{$keyword}%");
        }
        $books= $books->latest()->paginate(20);

در نمونه بالا برای نام کتاب name و برای نام نویسنده writer رو در نظر گرفتم شما می تونید بر اساس ستون های جدول خودتون شروط لازم رو اضافه کنید.
برای سمت فرانت هم می تونید به این شکل اقدام کنید.

<input type="text" name="search" class="form-control float-right" placeholder="جستجو" value="{{ request('search') }}">

علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
1

@hekmati
وقتی پکیج هایی هستند که کار آدم رو با کیفیت تر و راحت تر می کنند چرا انقدر خودمون رو ب زحمت بیندازیم و آجر های یک ساختمان هم از ابتدا بسازیم ؟


حسن حکمتی
تخصص : برنامه نویس وب و بلاکچین
@hekmati 3 سال پیش مطرح شد
2

@gomnam
انتخاب راه حل بستگی به فاکتورهای مختلفی داره، یه برنامه نویس تصمیم میگیره کجا از پکیج استفاده بکنه و کجا باید خودش کدنویسی کنه.


افشار محمودیان
تخصص : برنامه نویس
@afsharmahmoodian 3 سال پیش مطرح شد
0

@gomnam ممنون بابت معرفی پکیج ، من دنبال بهترین روش انجام هستم.

@hekmati با این کار وقتی صفحه دوم به بعد کلیک بشه کوئری استرینگ ها از url حذف نمیشن ؟
میخوام وقتی یک فیلدی مقدار داشت ، همون مقدار بمونه تو فیلد و تو نتایج هم دخیل باشه و تو استفاده از پجینیشن هم مشکلی پیش نیاد .


سبحان دادخواه
تخصص : دانشجوی برنامه نویسی :)
@SobhanDadkhah 3 سال پیش آپدیت شد
1

@afsharmahmoodian
با سلام. به نظر من بهترین روش که خودتون هم انجام بدین و پکیج اضافی نیاز نیست استفاده از Query Scope ها هست . مثلا برای مثال شما میتونید با یک Local Scope کوئری های مربوطه رو رو بزنید. راه جالبی هست بد نیست یه نگاهی بهش بندازید به نظرم.
مستندات

Local Scopes


حسن حکمتی
تخصص : برنامه نویس وب و بلاکچین
@hekmati 3 سال پیش آپدیت شد
1

@afsharmahmoodian
سمت فرانت input رو توی یک form بگذارید لازم نیست به action هم مقدار خاصی بدید، کوئری استرینگ توی صفحات بعدی حذف میشه اما مشکلی برای paginate پیش نمیاد و نتایج به خوبی نمایش داده میشه.

<form action="">
    <input type="text" name="search" class="form-control float-right" placeholder="جستجو" value="{{ request('search') }}">
</form>

محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
1

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


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

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