TGViewer
| کانال توسعه‌دهندگان لاراول | | کانال توسعه‌دهندگان لاراول | @developixlaravel · 1.54K subscribers
Post #205 111
🛠 فیلترهای API را تمیزتر بنویس

وقتی لیست کاربران فیلتر، مرتب‌سازی و صفحه‌بندی می‌خواهد، شرط‌های تکراری زود زیاد می‌شوند. پکیج Spatie Laravel Query Builder پارامترهای درخواست را به کوئری Eloquent تبدیل می‌کند؛ با فهرست مجاز مشخص می‌کنی چه فیلدهایی قابل استفاده‌اند.

✨ فیلتر و مرتب‌سازی مجاز، بارگذاری رابطه‌ها با include و سازگاری با صفحه‌بندی لاراول.

نصب:
composer require spatie/laravel-query-builder


نمونه در کنترلر:
use App\Models\User;
use Spatie\QueryBuilder\QueryBuilder;

return QueryBuilder::for(User::class)
->allowedFilters('name')
->allowedSorts('created_at')
->paginate(15);


با ?filter[name]=ali&sort=-created_at نام فیلتر می‌شود و جدیدترین‌ها اول می‌آیند. فیلتر پیش‌فرض رشته‌ای، تطبیق جزئی است؛ برای تطبیق دقیق از AllowedFilter::exact() استفاده کن.

📚 مستندات رسمی

🌱 روی یک endpoint کوچک امتحانش کن؛ تفاوت در خوانایی کد ملموس است.

🔖 #Laravel #PHP #لاراول #Laravel #PHP #API #Eloquent

👤 Developix

💎 Channel: @DevelopixLaravel
  • ❤ 4
More from @developixlaravel
  1. Oct 10, 2026حفاظت از پردازش ها با Laravel Rate Limiter بخش چهارم - بررسی شماتیک سرویس در بخش چهارم آمو…
  2. Oct 9, 2026روابط پایگاه داده چند ریختی یا Eloquent Polymorphic در لاراول - قسمت دوم در بخش دوم از آمو…
  3. Oct 1, 2026روابط پایگاه داده چند ریختی یا Eloquent Polymorphic در لاراول - قسمت اول در لاراول، روابط…
  4. Sep 30, 2026مدیریت همزمانی و قفل‌گذاری روی پردازش‌ها در لاراول (Laravel Atomic Locks) در بخش چهارم از…
  5. Sep 26, 2026🔥 پکیج: ورود با حساب‌های دیگر؛ Socialite برای اضافه‌کردن ورود با حساب‌های دیگر به پروژه ل…
  6. Sep 25, 2026🔒 فقط داده‌های تأییدشده را ذخیره کن وقتی یک فرم ویرایش پروفایل داری، ممکن است کلاینت علاو…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →