0

Estoy tratando de llevar un proyecto a produccion por primera vez, usando Laravel y casi todo funciona bien , a excepcion de las rutas del carrito me arroja un error 500 mi pregunta es tengo que hacer otra cosa en el .htaccess o es otro problema? Este es mi controlador de carrito

public function agregar(Request $request, $productoId)
{
    $user = Auth::user();
    $producto = Producto::findOrFail($productoId);

    // Busca o crea un carrito para el usuario
    $carrito = Carrito::firstOrCreate(['user_id' => $user->id]);

    // Busca el item en el carrito o crea uno nuevo
    $cartItem = $carrito->productos()->where('producto_id', $productoId)->first();

    if ($cartItem) {
        if ($cartItem->pivot->cantidad < $producto->cantidad) {
            $cartItem->pivot->increment('cantidad');
        } else {
            return redirect()->route('cliente')->with('error', 'No puedes añadir más de la cantidad disponible.');
        }
    } else {
        $carrito->productos()->attach($productoId, ['cantidad' => 1]);
    }

    return redirect()->route('cliente')->with('success', 'Producto añadido al carrito');
}

public function eliminar($id)
{
    $user = Auth::user();
    $carrito = Carrito::where('user_id', $user->id)->firstOrFail();
    $carrito->productos()->detach($id);

    return redirect()->route('carrito.mostrar')->with('success', 'Producto eliminado del carrito');
}


public function mostrar()
{
    $user = Auth::user();
    $carrito = Carrito::where('user_id', $user->id)->with('productos')->first();
    $total = 0;

    if ($carrito) {
        $total = $carrito->productos->sum(function ($item) {
            return $item->precio * $item->pivot->cantidad;
        });
    }

    return view('cliente.carrito', ['carrito' => $carrito, 'total' => $total]);
}

Y este es mi .htacces lei por ahi que debe manejarse de cierta maneras algunas redirecciones sera este el caso?

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
2
  • Error aquí: $cartItem = $carrito->productos()->where('producto_id', $productoId)->first(); ponlo de este modo $cartItem = $carrito->productos()->where('producto_id', $productoId->first()); Si sigue dando error conviene que revises el log de errores y agregues a la pregunta el mensaje de error.
    – A. Cedano
    Commented el 22 may. a las 18:04
  • Es que como tal, ya me funciono en la parte local, mi error ya es en produccion jeje, como menciono es la primera vez que hago un deploy
    – Samayoa
    Commented el 22 may. a las 22:43

0

Examina otras preguntas con la etiqueta o formula tu propia pregunta.