سلام دوستان.
من واسه هر آگهی یه گالری تصویر ایجاد کردم که کاربر میتونه حداکثر سه تا عکس اضافه کنه. حالا میخوام وقتی خود آگهی رو حذف کرد، عکس های مربوط به اون آگهی هم از فولدر 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
}
@arminrahmati999
سلام.
کد آقای @MehdiAghighi یه مشکل کوچیک داره، در واقع کدتونو اگه به صورت زیر بنویسید، مشکلتون حل میشه.
foreach ($gallery as $image) {
if (File::exists(public_path("{$image}")))
File::delete(public_path("{$image}"));
}
موفق باشید.
سلام ، به خاطر این که هر آگهی چند تا عکس داره ، باید این کد رو بزاری توی لوپ، مثل کد زیر:
foreach ( $gallery->items as $image ) {
if (File::exists(public_path("{$image}")))
File::delete(public_path("{$image}"));
}
به جای اون بخش if ($gallery)
این رو بزار.
یه خورده اگر دقیق بشی ، متوجه میشی چی کار کردم ولی اگر نفهمیدی بگو بیشتر توضیح بدم.
@arminrahmati999
سلام.
کد آقای @MehdiAghighi یه مشکل کوچیک داره، در واقع کدتونو اگه به صورت زیر بنویسید، مشکلتون حل میشه.
foreach ($gallery as $image) {
if (File::exists(public_path("{$image}")))
File::delete(public_path("{$image}"));
}
موفق باشید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟