سامان
5 سال پیش توسط سامان مطرح شد
2 پاسخ

مرتب کردن یک collection

سلام دوستان . در لاراول میخواستم یک collection را به ترتیب یکی از فیلدهای آن که حروف فارسی دارد سورت کنم . مثلا یکی از فیلدهای جدولم (اسم جدول student است ) به اسم name است که محتوی آن اسامی افراد با حروف فارسی را ذخیره کرده ام . در لاراول میخواستم دستور زیر را اجرا کنم

 $students = Student::orderBy('name')->get() 

از UTF8 استفاده میکنم ولی مرتب سازی درست انجام نمیشه انگار با حروف فارسی مشکل داره یه بخشهائی را سورت میکنه و یه بخشهائی رو سورت نمیکنه . مواردی مثل space رو هم چک کردم مشکلی نیست . اگر راهنمائی کنین خیلی ممنون میشم .


ثبت پرسش جدید
محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 5 سال پیش مطرح شد
0

@samanf33
سلام.
لینک زیر رو بررسی کنید و تغییرات رو در mysql ایجاد کنید بعد دوباره تست کنید :
https://stackoverflow.com/questions/29550658/order-arabic-data-by-alphabet-letters


نوب
تخصص : کدنویس نوب :)
@yk5742g 5 سال پیش مطرح شد
0

یعنی چی یه قسمت هایی را سورت میکنه یه قسمت هایی را نه

تابع orderBy لاراول تمام طول string را میگیره و از همه لحاظ چک میکنه و سورت میکنه
من خیلی ستون های فارسی باهاش سورت میکنم و مشکلی نداره
شما به کدتون را به این شکل هم تست کنین

 $students = Student::orderBy('name', 'DESC')->get() 

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

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