Array_key_exists(): первый аргумент должен быть либо строкой, либо целым числом

Я пытаюсь загрузить изображение в свое приложение 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');
    
}

Наряду с этим сообщением должна быть трассировка стека, показывающая конкретную строку, которая выбрасывается, а также то, как она туда попала.

Chris Haas 13.05.2022 06:07
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
34
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В правилах проверки не может быть пробелов. Попробуйте упростить метод и используйте все, что предлагает вам фреймворк 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

loidd 13.05.2022 18:30

Другие вопросы по теме