وقتی لیست کاربران فیلتر، مرتبسازی و صفحهبندی میخواهد، شرطهای تکراری زود زیاد میشوند. پکیج 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