محسن بستان
5 سال پیش توسط محسن بستان مطرح شد
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"
  ]
}

ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

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

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


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

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


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

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