Это мой контроллер < /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);
}
});
Подробнее здесь: https://stackoverflow.com/questions/794 ... e-in-mysql