راکت

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

9 پاسخ

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

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

ثبت پرسش جدید

پاسخ‌ها

9
رضا پارسیان
رضا پارسیان
@Rp76

تخصص: توسعه دهنده Php , Laravel

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

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

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

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

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

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

حسن حکمتی
حسن حکمتی
@hekmati

تخصص: برنامه نویس وب و بلاکچین

سلام @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') }}">
علیرضا کفایتی
علیرضا کفایتی
@alirezakefayati

تخصص: برنامه نویس laravel, vue.js

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

حسن حکمتی
حسن حکمتی
@hekmati

تخصص: برنامه نویس وب و بلاکچین

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

افشار محمودیان
افشار محمودیان
@afsharmahmoodian

تخصص: برنامه نویس

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

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

سبحان دادخواه
سبحان دادخواه
@SobhanDadkhah

تخصص: دانشجوی برنامه نویسی :)

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

Local Scopes

حسن حکمتی
حسن حکمتی
@hekmati

تخصص: برنامه نویس وب و بلاکچین

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

<form action="">
    <input type="text" name="search" class="form-control float-right" placeholder="جستجو" value="{{ request('search') }}">
</form>
محمد رضا
محمد رضا
@salar.mohammad2013

تخصص: Full Stack Developer

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

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

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