+1
Update Multi Images and Files
Mọi người cho em hỏi là em có 1 json tên file ảnh lưu vào database. Giowf em muốn update 1 ảnh và xóa đi 2 ảnh Mọi người có thể cho em cách giải quyết được không ạ Trong lavarel ạ
2 CÂU TRẢ LỜI
+2
Cái này là tư duy code thôi chứ chả có trick gì cả :v
- Bạn get json đó từ DB ra
- Dùng
json_decode($json, true)
, bạn sẽ có được một mảng. Vấn đề là mảng json bạn lưu vào DB cần có một cái gì đó để bạn có thể tìm lại được ảnh, ví dụ mảng sau khi decode của bạn trông giống thế này:
$images = [
anh_ngoc_trinh => 'link ảnh',
anh_khong_che => 'link ảnh khác',
]
ok, giờ bạn tìm trong array đó và update lại theo key của ảnh, ví dụ key ảnh bạn đưa vào là:
$key_anh = 'anh_ngoc_trinh';
$images[$key_anh] = 'link mới';
$updatedImages = $images;
- Xóa đi 2 ảnh thì bạn cũng cần phải biết 2 ảnh đấy có key là gì, sau đó có 2 cách xóa cho bạn:
Xóa một cái một:
$key_anh = 'anh_ngoc_trinh';
$images[$key_anh] = 'link mới';
$key_xoa = 'anh_khong_che';
unset($images[$key_xoa]);
$updatedImages = $images;
Xóa nhiều cái một lúc:
$key_anh = 'anh_ngoc_trinh';
$images[$key_anh] = 'link mới';
$key_xoa = ['anh_khong_che', 'anh_ngoc_trinh'];
foreach($key_xoa as $item) {
unset($images[$item]);
}
$updatedImages = $images;
Đó là cách dễ nhất, ngoài ra còn một số function hỗ trợ việc này gọn gàng hơn, bạn tìm trên google: php xóa element khỏi array là ra cả rổ
+1
nếu là RDSDB thì tách riêng ra 1 table, dùng sẵn cái morphTo của laravel đó, index được và không gây dư thừa dữ liệu
Em muốn hỏi thao tác, câu truy vấn sql hay cách viết code ??? Đặt câu hỏi rõ ràng hơn được k em?