Armin Rahmati
3 سال پیش توسط Armin Rahmati مطرح شد
3 پاسخ

حذف عکس از فولدر public

سلام دوستان.
من واسه هر آگهی یه گالری تصویر ایجاد کردم که کاربر میتونه حداکثر سه تا عکس اضافه کنه. حالا میخوام وقتی خود آگهی رو حذف کرد، عکس های مربوط به اون آگهی هم از فولدر public حذف بشن که کدمو به صورت زیر نوشتم:

public function destroy(Job $job)
    {
        $gallery = JobGallery::where('job_id', $job->id)->pluck('image');
        if ($gallery) {
            if (File::exists(public_path("{$gallery->image}")))
                File::delete(public_path("{$gallery->image}"));
        }
        $job->delete();
        session()->flash('status', 'آگهی با موفقیت حذف شد');
        return back();
    }

ولی با ارور زیر مواجه میشم:

Property [image] does not exist on this collection instance.

خروجی کد زیر:

dd($gallery = JobGallery::where('job_id', $job->id)->pluck('image'));
Illuminate\Support\Collection {#1298 ▼
  #items: array:3 [▼
    0 => "upload/images/lCOVuJaLAQnROiiKpy32THMzD9j0rhZBtIpOaCYe.jpg"
    1 => "upload/images/4MFGHegVMzvGfNRitYHhDQOWThXBSthfypHHlbjG.jpg"
    2 => "upload/images/A7ziz30KnObKHg7WAYd7Or6VsnZYZJFyl9jJ11rB.jpg"
  ]
  #escapeWhenCastingToString: false
}

ثبت پرسش جدید
رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
0

@arminrahmati999
سلام.
کد آقای @MehdiAghighi یه مشکل کوچیک داره، در واقع کدتونو اگه به صورت زیر بنویسید، مشکلتون حل میشه.

foreach ($gallery as $image) {
    if (File::exists(public_path("{$image}")))
        File::delete(public_path("{$image}"));
}

موفق باشید.


مهدی عقیقی
تخصص : برنامه نویس وب
@MehdiAghighi 3 سال پیش مطرح شد
0

سلام ، به خاطر این که هر آگهی چند تا عکس داره ، باید این کد رو بزاری توی لوپ، مثل کد زیر:

foreach ( $gallery->items as $image ) {
    if (File::exists(public_path("{$image}")))
        File::delete(public_path("{$image}"));
}

به جای اون بخش if ($gallery) این رو بزار.
یه خورده اگر دقیق بشی ، متوجه میشی چی کار کردم ولی اگر نفهمیدی بگو بیشتر توضیح بدم.


Armin Rahmati
@arminrahmati999 3 سال پیش مطرح شد
0

@MehdiAghighi
همچنان ارور قبلی رو میده.


رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
0

@arminrahmati999
سلام.
کد آقای @MehdiAghighi یه مشکل کوچیک داره، در واقع کدتونو اگه به صورت زیر بنویسید، مشکلتون حل میشه.

foreach ($gallery as $image) {
    if (File::exists(public_path("{$image}")))
        File::delete(public_path("{$image}"));
}

موفق باشید.


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

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