Я пытаюсь загрузить изображение в свое приложение Laravel. но есть ошибка:
array_key_exists(): первый аргумент должен быть либо строкой, либо целым числом.
Я использую enctype: <form method = "POST" action = "/producto" enctype = "multipart/form-data">
Это мой контроллер:
public function CrearProducto(Request $data)
{
$data->validate(
[
'nombre_producto'=>'required | min:1 | max:250',
'precio_producto'=>'required | min:1 | max:250',
'stock_producto'=>'required | min:1 | max:250',
'igv_producto'=>'required | min:1 | max:250',
'producto_categoria'=>'required | min:1 | max:250',
'imagen_producto'=>'mimes:jpeg,bmp,png,jpg',
]
);
$producto = new Producto();
$producto->nombre_producto = $data["nombre_producto"];
$producto->precio_producto = $data["precio_producto"];
$producto->stock_producto = $data["stock_producto"];
$producto->igv_producto = $data["igv_producto"];
$producto->producto_categoria = $data["producto_categoria"];
if ($data["imagen_producto"= = ""]){
$producto->imagen_producto = $data["imagen_producto"];
}else{
$imagen = $data["imagen_producto"];
$nombre_img_prod = time()."_".$imagen->getClientOriginalName();
\Storage::disk('public')->put($nombre_img_prod, \File::get($imagen));
$producto->imagen_producto = $nombre_img_prod;
}
//$producto->imagen_producto = "-";
$producto->tipo_afectacion_producto = "-";
$producto->estado_producto = "Activo";
$producto->save();
return redirect()->route('producto');
}






В правилах проверки не может быть пробелов. Попробуйте упростить метод и используйте все, что предлагает вам фреймворк Laravel.
Пример:
public function crearProducto(Request $request)
{
// Validation rules cannot have spaces.
$request->validate([
'nombre_producto' => 'required|min:1|max:250',
'precio_producto' => 'required|min:1|max:250',
'stock_producto' => 'required|min:1|max:250',
'igv_producto' => 'required|min:1|max:250',
'producto_categoria' => 'required|min:1|max:250',
'imagen_producto' => 'nullable|image',
]
);
$producto = new Producto;
$producto->nombre_producto = $request->nombre_producto;
$producto->precio_producto = $request->precio_producto;
$producto->stock_producto = $request->stock_producto;
$producto->igv_producto = $request->igv_producto;
$producto->producto_categoria = $request->producto_categoria;
if ($request->hasFile('imagen_producto')) {
$producto->imagen_producto = $request
->file('imagen_producto')
->store('images', 'public');
}
//$producto->imagen_producto = "-";
$producto->tipo_afectacion_producto = "-";
$producto->estado_producto = "Activo";
$producto->save();
return to_route('producto');
}
Это работает для меня большое спасибо :'D
Наряду с этим сообщением должна быть трассировка стека, показывающая конкретную строку, которая выбрасывается, а также то, как она туда попала.