take(6)->get() داده ...' /> take(6)->get() داده ...' />
🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ amirmrt
دریافت داده از دیتابیس
جامعه لاراول ایجاد شده در ۱۳ دی ۱۴۰۰

سلام

زمانی که از کد زیر استفاده میکنم داده‌های دریافتی ترتیب مشخصی ندارد

latest()->take(6)->get()

ولی زمانی که از کد زیر استفاده میشه

latest('id')->take(6)->get()

داده‌ها به صورت بر اساس id مرتب شده بر میگردد

آیا علت این که این داده‌ها ترتیب مشخصی نداره و به صورت رندوم بر میگردد، استفاده از seed است که باعث میشود تمام داده‌های ستون created_at یکی باشد؟

و اینکه آیا استفاده از id برای گرفتن آخرین داده‌های وارد شده از دیتابیس کار درستی هست، به خاطر اینکه id‌ها auto_increment هستند؟

سلام دوست عزیز

تابع ()latest به صورت پیش‌فرض، ستون created_at را برای دریافت داده‌ها در نظر می‌گیرد و آخرین اطلاعات را طبق این فیلد برمی‌گرداند اما زمانی که کد زیر نوشته می‌شود. اطلاعات براساس ستون آیدی مرتب و جدیدترین رکورد در ابتدا قرار می‌گیرد.

latest('id')->take(6)->get()


نکته: هر دوخطی که نوشتید، نتیجه درستی را برمی‌گرداند اما چرا در مورد اول احساس می‌کنید ترتیب درست نیست، چون فیلد created_at برای همه داده‌های انتخابی یکسان بوده، پس لاراول تفاوتی برای آنها قائل نمی‌شود.


بهترین پاسخ
رضا * ۱۳ دی ۱۴۰۰، ۰۹:۵۲