راکت

مرتب سازی نتایج eloquent لاروال بر اساس یک جدول دیگه

2 پاسخ

سلام من یه برنامه چت خیلی ساده دارم شامل 3 تا جدول users , chatrooms و chats من میخوام چت روم هارو بر اساس جدیدترین پیام هاشون مرتب سازی کنم مثله هر نرم افزار پیام رسانی که اون چتهایی که دارای جدید ترین پیام هستن رو بالاتر از همه نشون میده
در حال حاضر از کوری زیر استفاده میکنم

ChatRoom::with('user')
            ->join('chats','chat_rooms.room_id','chats.room_id')
            ->select('chat_rooms.*','chats.created_at as c','chats.message')
            ->orderBy('c','DECS')
            ->paginate(5);

حالا مشکل اینجاس که این کوری تموم چت هارو بر میگردونه که چیزی نیست که من میخوام من سعی کردم چت روم هارو گروه بندی کنم اما اینکار هم جواب نداد.

mohamad
mohamad
@kani.trifa
ثبت پرسش جدید

پاسخ‌ها

2
Muhammad
Muhammad
@muhammad

تخصص: Back-End Developer

راهکار ساده‌ای دارم، اون هم اینکه هر وقت پیام جدیدی فرستاده شد، ستونی روی تیبل chatrooms آپدیت بشه، مثل last_message_at یا چیزی مشابهش؛ اینطوری خیلی راحت با یک orderBy قابل مرتب‌سازیه.

mohamad
mohamad
@kani.trifa

تخصص: برنامه نویس back-end

ممنون از وقتی که گزاشتی مشکل اینجا بود که امکان تغیر در جداول نبود

بعد از چند ساعت سرچ این تاپیک رو پیدا کردم و مشکل حل شد

laravel sort conversations by last-message

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام