راکت

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

2 پاسخ

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

$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"
  ]
}
ثبت پرسش جدید

پاسخ‌ها

2
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

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

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

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

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

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

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

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