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>
$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.