Laravel 8 Несколько изображений Загрузка и хранить в MySQLMySql

Форум по Mysql
Ответить
Anonymous
 Laravel 8 Несколько изображений Загрузка и хранить в MySQL

Сообщение Anonymous »

Мне нужно сохранить изображение в дм и папке, но мой код хранит только одно изображение, и я хочу сохранить несколько изображений. Я использую Laravel 8. < /p>
Это мой контроллер < /p>

Код: Выделить всё

public function store(Request $request)
{
$request->validate([
'brand' => 'required|string|max:255',
'model' => 'required|string|max:255',
'type' => 'required|string',
'status' => 'required|string',
'location' => 'required|string',
'seats' => 'required|integer',
'year' => 'required|integer',
'color' => 'required|string',
'automatic' => 'required|string',
'fuel_type' => 'required|string',
'description' => 'nullable|string',
'images.*' => 'image|mimes:jpeg,png,jpg,gif|max:2048', // Proverava svaku    sliku
]);

// Prvo kreiramo vozilo u bazi
$vehicle = Vehicle::create($request->only([
'brand', 'model', 'type', 'status', 'location', 'seats', 'year', 'color', 'automatic', 'fuel_type', 'description'
]));

// Proveravamo da li su slike poslate
if ($request->hasFile('images')) {
foreach ($request->file('images') as $image) {
// Pravimo folder sa ID-om vozila
$folderPath = 'vehicles/' .  $vehicle->id;
$imagePath = $image->store($folderPath, 'public');

// Čuvamo svaku sliku u bazi
VehicleImage::create([
'vehicle_id' => $vehicle->id,
'path' => $imagePath, // Koristi ispravno ime kolone
]);
}
}

return redirect()->route('admin.vehicles.vehicles')->with('success', 'Vozilo uspešno kreirano!');
}
< /code>
И это blade.php < /p>


Detalji vozila


@csrf


Brand

@error('brand') {{ $message }} @enderror

Model

@error('model') {{ $message }} @enderror

Tip vozila

Economy class
Standard
SUV
Lux
Convertibles
Van

@error('type') {{ $message }} @enderror

Status

Available
Reserved
In use
In maintenance
Repairing the vehicle

@error('status') {{ $message }} @enderror

Lokacija

@error('location') {{ $message }} @enderror

Broj sjedišta

@error('seats') {{ $message }} @enderror

Godina

@error('year') {{ $message }} @enderror

Boja vozila

@error('color') {{ $message }} @enderror

Mjenjač

Manual
Automatic


@error('automatic') {{ $message }} @enderror

Gorivo

@error('fuel_type') {{ $message }} @enderror

Opis
{{ old('description') }}
@error('description') {{ $message }} @enderror

Slike

@error('images') {{ $message }} @enderror



Kreirajte vozilo





document.getElementById('imageInput').addEventListener('change', function(event) {
let imagePreview = document.getElementById('imagePreview');

for (let file of event.target.files) {
let reader = new FileReader();
reader.onload = function(e) {
let imageContainer = document.createElement('div');
imageContainer.style.position = "relative";
imageContainer.style.display = "inline-block";
imageContainer.style.marginRight = "10px";

let imgElement = document.createElement('img');
imgElement.src = e.target.result;
imgElement.style.width = "150px";
imgElement.style.height = "100px";
imgElement.style.objectFit = "cover";
imgElement.style.border = "1px solid #ddd";
imgElement.style.borderRadius = "5px";

let closeButton = document.createElement('span');
closeButton.innerHTML = "×";
closeButton.style.position = "absolute";
closeButton.style.top = "5px";
closeButton.style.right = "5px";
closeButton.style.backgroundColor = "red";
closeButton.style.color = "white";
closeButton.style.borderRadius = "50%";
closeButton.style.width = "20px";
closeButton.style.height = "20px";
closeButton.style.display = "flex";
closeButton.style.justifyContent = "center";
closeButton.style.alignItems = "center";
closeButton.style.cursor = "pointer";
closeButton.style.fontSize = "16px";

closeButton.addEventListener('click', function() {
imageContainer.remove();
});

imageContainer.appendChild(imgElement);
imageContainer.appendChild(closeButton);
imagePreview.appendChild(imageContainer);
};
reader.readAsDataURL(file);
}
});

, чтобы найти решение для нескольких хранилищ изображений в DB и папке

Подробнее здесь: https://stackoverflow.com/questions/794 ... e-in-mysql
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»