array_key_exists(): 第一个参数应该是字符串或整数

array_key_exists(): The first argument should be either a string or an integer

我正在尝试在我的 Laravel 应用中上传图片。但是有一个错误:

array_key_exists(): 第一个参数应该是字符串或整数

我使用的是加密类型:<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');
    }