Ayuda con request en laravel

  • Autor Autor pa3lo022
  • Fecha de inicio Fecha de inicio
P

pa3lo022

Gamma
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Buenos dias, tengo un problema con una validacion que no logro desifrar como arreglarlo.
Estoy haciendo un sistema en donde se tiene que poner codigos internos a los productos, pero lo van a utilizar muchos locales distintos asique se pueden repetir estos codigos, mi solucion a esto es, al codigo que el usuario puso le sumo el ID del local, hasta ahi todo bien, pero si el mismo local repite el codigo me da un error en la base de datos de duplicado.

Este es el codigo que le asigno el ID al codigo interno
Insertar CODE, HTML o PHP:
if ($request->internalCode) {
            $internalCode = $shopId . $request['internalCode'];
        } else {
            $internalCode = NULL;
        }

        $product = Product::create([
            'name' => $request['name'],
            'description' => $request['description'],
            'provider' => $request['provider_id'],
            'internalCode' => $internalCode,
            'buyPrice' => $request['buyPrice'],
            'sellPrice' => $request['sellPrice'],
            'discount' => $request['discount'],
            'quantity' => $request['quantity'],
            'expire' => $request['expire'],
            'post' => $post,
            'slug' => Str::slug($request['name']),
            'shop_id' => $shopId,
        ]);

y este es el request
Insertar CODE, HTML o PHP:
return [
            'name' => 'required | min:5',
            'description' => 'required | min:10',
            'provider_id' => 'required | numeric',
            'internalCode' => 'nullable | numeric | unique:products,internalCode',
            'buyPrice' => 'required',
            'sellPrice' => 'required',
            'image' => 'nullable | mimes:jpeg,jpg,png,gif | max:1000',
        ];

El request funciona perfecto, si no le agrego el ID del local, pero al agregarle explota 🙁

Alguien tiene alguna solucion porfa.

muchas gracias
 
¿Qué te bota la debug bar de Laravel?
¿Que error marca cuando cargas id?
Decir que 'explota' no aporta mucho
 
¿Qué te bota la debug bar de Laravel?
¿Que error marca cuando cargas id?
Decir que 'explota' no aporta mucho
El error es que ya existe ese codigo en la base de datos
Insertar CODE, HTML o PHP:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '23' for key 'products_internalcode_unique'
 
Parece que el campo internalcode es único. Has revisado las migraciones o la base de datos?
 
Parece que el campo internalcode es único. Has revisado las migraciones o la base de datos?
Claro es unico ese campo, por eso queria validarlo con el request, pero no se porque falla y me muestra ese error y no un alerta diciendo que ya esta en uso, me explico?
 
Tienes debugbar instalado? Puedes revisar la consulta que está realizando?
 
¿Cómo obtienes el shop_id?
En teoría debería obtenerse de manera automática, ya que cada usuario quien registra está asociado a una tienda en particular ¿Me equivoco?
 
¿Cómo obtienes el shop_id?
En teoría debería obtenerse de manera automática, ya que cada usuario quien registra está asociado a una tienda en particular ¿Me equivoco?
Claro cada usuario tiene un ID de tienda y ese ID se obtiene del usuario que esta conectado con el auth::user();
 
Claro cada usuario tiene un ID de tienda y ese ID se obtiene del usuario que esta conectado con el auth::user();
Si es así, en el request no debes pasar el ID del local.

Instala la debug bar para darle trazabilidad al error
Bash:
composer require barryvdh/laravel-debugbar --dev
 
Atrás
Arriba