TGViewer
| کانال توسعه‌دهندگان لاراول | | کانال توسعه‌دهندگان لاراول | @developixlaravel · 1.54K subscribers
Post #96 522
فصل چهار - مدل‌ها و Eloquent ORM

بخش دوم - مدل ها - قسمت هفتم (متدهای مرتب سازی و محدود سازی)


1- متد orderBy
برای مرتب‌سازی نتایج بر اساس یک ستون به صورت صعودی یا نزولی استفاده می‌شود. به صورت پیش‌فرض، مرتب‌سازی صعودی (از کوچک به بزرگ) انجام می‌شود.
$users = User::orderBy('name', 'asc')->get();


2- متد orderByDesc
برای مرتب‌سازی نتایج بر اساس یک ستون به صورت نزولی استفاده می‌شود.
$users = User::orderByDesc('created_at')->get();


3- متد orderByRaw
برای نوشتن کوئری‌های خام SQL برای مرتب‌سازی استفاده می‌شود.
$users = User::orderByRaw('LENGTH(name) DESC')->get();


4- متد latest
برای مرتب‌سازی بر اساس جدیدترین رکوردها (بر اساس فیلد created_at) استفاده می‌شود. به صورت پیش‌فرض، مرتب‌سازی نزولی است.
$posts = Post::latest()->get();


5- متد oldest
برای مرتب‌سازی بر اساس قدیمی‌ترین رکوردها (بر اساس فیلد created_at) استفاده می‌شود.
$posts = Post::oldest()->get();


6- متد inRandomOrder
برای مرتب‌سازی نتایج به صورت تصادفی استفاده می‌شود.
$users = User::inRandomOrder()->get();

این کد تمام کاربران را به صورت تصادفی مرتب و بازیابی می‌کند.

7- متد reorder
برای پاک کردن هرگونه مرتب‌سازی قبلی و اعمال یک مرتب‌سازی جدید استفاده می‌شود.
$users = User::orderBy('name')->reorder('email', 'desc')->get();

در ابتدا، کاربران بر اساس نام مرتب می‌شوند، اما با استفاده از reorder مرتب‌سازی قبلی پاک می‌شود و کاربران بر اساس ایمیل به صورت نزولی مرتب می‌شوند.

8- متد count
برای شمارش تعداد رکوردها در یک مجموعه استفاده می‌شود.
$userCount = User::count();


9- متد max
برای یافتن بیشترین مقدار از یک ستون خاص استفاده می‌شود.
$maxAge = User::max('age');


10- متد min
برای یافتن کمترین مقدار از یک ستون خاص استفاده می‌شود.
$minAge = User::min('age');


11- متد avg
برای محاسبه میانگین مقدار یک ستون خاص استفاده می‌شود.
$averageAge = User::avg('age');


12- متد sum
برای محاسبه مجموع مقادیر یک ستون خاص استفاده می‌شود.
$totalSalary = User::sum('salary');


13- متد limit
برای محدود کردن تعداد رکوردهایی که از دیتابیس بازیابی می‌شوند، استفاده می‌شود.
$users = User::limit(10)->get()


14- متد having
برای فیلتر کردن نتایج بر اساس شرطی که بر روی ستون‌های جمع‌آوری شده (مثل COUNT, SUM, AVG) اعمال می‌شود، استفاده می‌شود.
$users = User::select('status', DB::raw('COUNT(*) as user_count'))
->groupBy('status')
->having('user_count', '>', 5)
->get();

این کد تمام وضعیت‌های کاربرانی که بیش از ۵ کاربر دارند را بازیابی می‌کند. (سایر متد های موجود در مثال در قسمت های بعدی بررسی می شوند.)

15- متد havingBetween
برای فیلتر کردن نتایج با استفاده از محدوده‌ای بین دو مقدار روی ستون‌های جمع‌آوری شده استفاده می‌شود.
$users = User::select('status', DB::raw('COUNT(*) as user_count'))
->groupBy('status')
->havingBetween('user_count', [5, 10])
->get();

این کد تمام وضعیت‌های کاربرانی را که تعدادشان بین ۵ تا ۱۰ نفر است، بازیابی می‌کند.

16- متد take
برای محدود کردن تعداد رکوردهای بازیابی شده استفاده می‌شود. take مشابه limit است.
$users = User::take(5)->get();


17- متد skip
برای نادیده گرفتن تعدادی رکورد اول استفاده می‌شود.
$users = User::skip(10)->take(5)->get();

این کد بعد از نادیده گرفتن ۱۰ رکورد اول، ۵ کاربر بعدی را بازیابی می‌کند.

18- متد offset
برای نادیده گرفتن تعداد مشخصی از رکوردهای اول استفاده می‌شود و در ترکیب با limit معمولاً استفاده می‌شود.
$users = User::offset(10)->limit(5)->get();

این کد بعد از نادیده گرفتن ۱۰ رکورد اول، ۵ کاربر بعدی را بازیابی می‌کند.

19 متد when
برای اعمال شرط به کوئری در صورت وجود شرایط خاصی استفاده می‌شود.
$users = User::when(request('status'), function ($query, $status) {
return $query->where('status', $status);
})->get();

این کد بررسی می‌کند که آیا درخواستی برای status وجود دارد؛ اگر وجود داشت، کاربران با همان وضعیت را بازیابی می‌کند.

20- متد exists
برای بررسی این است که آیا رکوردهایی در جدول وجود دارند یا خیر. این متد یک مقدار (true یا false) برمی‌گرداند.
$usersExist = User::where('name', 'John')->exists();


21- متد doesntExist
مشابه exists است، اما بررسی می‌کند که آیا رکوردهایی وجود ندارند. این متد نیز یک مقدار (true یا false) برمی‌گرداند.
$usersNotExist = User::where('name', 'John')->doesntExist();


🔖 #Laravel, #PHP, #لاراول, #فصل_۴

👤 AmirHossein

💎 Channel: @DevelopixLaravel
  • 👍 5
  • ❤ 2
  • 🔥 2
More from @developixlaravel
  1. Oct 1, 2026روابط پایگاه داده چند ریختی یا Eloquent Polymorphic در لاراول - قسمت اول در لاراول، روابط…
  2. Sep 30, 2026مدیریت همزمانی و قفل‌گذاری روی پردازش‌ها در لاراول (Laravel Atomic Locks) در بخش چهارم از…
  3. Sep 26, 2026🔥 پکیج: ورود با حساب‌های دیگر؛ Socialite برای اضافه‌کردن ورود با حساب‌های دیگر به پروژه ل…
  4. Sep 25, 2026🔒 فقط داده‌های تأییدشده را ذخیره کن وقتی یک فرم ویرایش پروفایل داری، ممکن است کلاینت علاو…
  5. Sep 20, 2026حفاظت از پردازش ها با Laravel Rate Limiter بخش سوم - پیکربندی در قسمت سوم از مجموعه آموزش…
  6. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
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 →