سلام ، وقتتون بخیر.
اگر بخوام یک لیست داده داشته باشم (مثلا یک کتابخانه) و روی این لیست بخوام فیلتر داشته باشم (مثل نام، نام نویسنده ، انتشارات و ...) و همچنین از پجینیشین لاراول استفاده کنم ، بهترین روش چیه ؟
(همون جستجو مد نظرمه)
سلام اگر از این دستور استفاده میکنید!
$books->links("pagination::bootstrap-4);
میتونی اینکارو کنی
$books->appends(Request()->all())->links("pagination::bootstrap-4);
کد بالا پارامتر هارو هم اضافه میکنه به دکمه ها
سلام @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') }}">
@hekmati
وقتی پکیج هایی هستند که کار آدم رو با کیفیت تر و راحت تر می کنند چرا انقدر خودمون رو ب زحمت بیندازیم و آجر های یک ساختمان هم از ابتدا بسازیم ؟
@gomnam
انتخاب راه حل بستگی به فاکتورهای مختلفی داره، یه برنامه نویس تصمیم میگیره کجا از پکیج استفاده بکنه و کجا باید خودش کدنویسی کنه.
@afsharmahmoodian
با سلام. به نظر من بهترین روش که خودتون هم انجام بدین و پکیج اضافی نیاز نیست استفاده از Query Scope
ها هست . مثلا برای مثال شما میتونید با یک Local Scope
کوئری های مربوطه رو رو بزنید. راه جالبی هست بد نیست یه نگاهی بهش بندازید به نظرم.
مستندات
@afsharmahmoodian
سمت فرانت input رو توی یک form بگذارید لازم نیست به action هم مقدار خاصی بدید، کوئری استرینگ توی صفحات بعدی حذف میشه اما مشکلی برای paginate پیش نمیاد و نتایج به خوبی نمایش داده میشه.
<form action="">
<input type="text" name="search" class="form-control float-right" placeholder="جستجو" value="{{ request('search') }}">
</form>
سلام
لایو وایر امکانات خیلی خوبی رو در اختیارت میزاره
برای جستجو و پیجینیت راحت میتونی کارتو انجام بدی
آموزشش هم توی راکت هست
حتما ببین
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟