مرتب کردن آرایه

- 3 هفته پیش
توسط محسن بستان آپدیت شد
محسن بستان ( 19305 تجربه )
3 هفته پیش
تخصص : توسعه دهنده وب

سلام دوستان.
بنده فایل های یک فولدر رو به صورت زیر میگیرم اما وقتی میخوام که اون ها رو بر اساس اسمشون مرتب کنم اررور میده.

$videoStream =
collect(\Illuminate\Support\Facades\Storage::disk('public')
->allFiles('/v' . "/" . $video->title))
->sortBy(function ($file) {
return $file->getClientOriginalName();
});

اررور به صورت زیر هستش :

Facade\Ignition\Exceptions\ViewException
Call to a member function getClientOriginalName() on string 

فایل های پوشه به صورت زیر هستش :

my_folder
----- 480.mp4
----- 720.mp4
----- 1080.mp4

وقتی که با تابع dd بدون انجام sort از آرایه خروجی میگیرم به صورت زیر هستش :

Collection {#266 ▼
  #items: array:3 [▼
    0 => "v/Intro Video/1080.mp4"
    1 => "v/Intro Video/480.mp4"
    2 => "v/Intro Video/720.mp4"
  ]
}

و چیزی که بنده میخوام شبیه زیر هستش :

Collection {#266 ▼
  #items: array:3 [▼
    0 => "v/Intro Video/1080.mp4"
    1 => "v/Intro Video/720.mp4"
    2 => "v/Intro Video/480.mp4"
  ]
}
علی بیات ( 191857 تجربه )
3 هفته پیش
تخصص : توسعه دهنده ارشد وب

درود
داخل کلوژر شما سعی میکنید متد getClientOriginalName رو از شئ که در متغیر file$ ذخیره شده، دریافت کنید.. اما مقدار موجود در این متغیر یه رشته است -> پس ارور دارید

به سبک استفاده صحیح از sortBy در مستندات لاراول سری بزنید
https://laravel.com/docs/6.x/collections#method-sortby

محسن بستان ( 19305 تجربه )
3 هفته پیش
تخصص : توسعه دهنده وب

@ali.bayat
ممنون. مشکلی که هست اگر به نوع آرایه دقت کرده باشید عملا به صورت key و value نیستش ( فقط مقادیر به صورت اندیس ها برگشت داده شده).
توی داکیومنت سایت نوعی که تعریف کرده حتما باید یک key داشته باشه. برای مثال بگی که بر اساس کلید name اون ها رو مرتب کن.

برای ارسال پاسخ باید وارد سایت شوید