#php #mysql #arrays #laravel #laravel-6
#php #mysql #массивы #laravel #laravel-6
Вопрос:
Я пытаюсь загрузить несколько изображений для своего продукта и сохранить имена этих изображений в базе данных в виде массива. Мой код работает следующим образом-
$images = $request->file('images');
if (isset($images)) {
foreach($images as $image){
$imagename = $slug.'-'.$currentDate.'-'.uniqid().'.'.$image->getClientOriginalExtension();
if (!file_exists('uploads/product/images')) {
mkdir('uploads/product/images', 0777, true);
}
$image->move('uploads/product/images', $imagename);
$data[] = $imagename;
}
}else{
$data[] = 'default.png';
}
$product = new Product();
$product->images = json_encode($data);
И данные, хранящиеся внутри images
поля, такие как-
["jeans-2020-08-13-5f352f18b30a4.jpg","jeans-2020-08-13-5f352f18b36a0.jpg","jeans-2020-08-13-5f352f18b3a2c.jpg"]
** И проблема в том, как я могу отделить это имя изображения, чтобы показывать изображения в Laravel Blade? **
ИЛИ Подскажите мне, есть ли другой способ загрузить несколько изображений или несколько значений в laravel-6
Ответ №1:
Вам нужно десериализовать имена изображений, а затем выполнить цикл по ним:
@foreach(json_decode($product->images) ?? [] as $image)
<img src="uploads/product/images/{{ $image }}">
@endforeach