0

estoy utilizando el paquete de ShoppingCart de DarrylCode y estoy teniendo un inconveniente en cuanto a el agregado al carrito, ya que por alguna razón no me agrega el primer producto de la tabla, pero cuando agrego otro de cualquier otra posición ya me deja agregarlo.

Mi función de agregar:

public function add(Request $request){
   
    $producto = Producto::find($request->id);

    Cart::add(
        $producto->id, 
        $producto->descripcion, 
        $producto->quantity = 1, 
       
    );
    return back();

}

Mi tabla:

<table id="productosexistentes" class="table table-striped table-bordered shadow-lg nt-4">
                <thead>
                    <tr>
                        <th scope="col">ID</th>
                        <th scope="col">Imagen</th>
                        <th scope="col">Código</th>
                        <th scope="col">Descripción</th>
                        <th scope="col">Stock</th>
                        <th scope="col"></th>
                    </tr>
                </thead>
                <tbody>
                    @foreach ($productos as $producto)
                    <tr>
                        <td>{{$producto->id}}</td>
                        <td>
                            <img src="/imagen/{{$producto->imagen}}" style="height: 50px; width: 50px; border-radius: 20%;">
                        </td>
                        <td>{{$producto->codigo}}</td>
                        <td>{{$producto->descripcion}}</td>
                        <td>{{$producto->cantidad}}</td>
                        <td>
                            <form action="{{route('cart.add')}}" method="POST" enctype="multipart/form-data">
                                @csrf
                                <input type="hidden" value="{{ $producto->id }}" name="id">
                                <input type="hidden" value="{{ $producto->descripcion }}" name="descripcion">
                                <input type="hidden" value="{{ $producto->cantidad }}"  name="cantidad">
                                <input type="hidden" value="{{ 1 }}" name="quantity">
                                <div class="flex justify-center rounded-lg" role="group">
                                    <button class="px-4 py-2 text-white bg-blue-800 rounded">Agregar</button>
                                </div>
                            </form>
                        </td>
                    </tr>
                    @endforeach
                </tbody>
            </table>

Solo tengo ese problema con el primer dato, y no entiendo qué me puede estar ocurriendo. He tratado de borrarlo y ver si era un error con ese producto, pero no me agrega es el primer producto que esté en la tabla.

Captura de pantalla del sistema, con el primer dato marcado en rojo

Al darle al botón agregar no me hace ninguna función, pero solo en el primer dato. Si agrego otro y luego intento agregar el primero sí me deja agregarlo.

2
  • 1
    En tu función add, quítale la coma a esta sentencia $producto->quantity = 1,
    – EvilFearzZ
    Commented el 28 jul. 2022 a las 15:24
  • jesucristo, sí me funcionó, muchas gracias; la programación es una cosa increíble. Tengo otra pregunta con respecto al botón de vaciar, que no me está funcionando, si tiene el chance de revisarla, estaría eternamente agradecida. es.stackoverflow.com/questions/548855/… Commented el 28 jul. 2022 a las 15:28

1 respuesta 1

1

Me alegro que te haya funcionado, te explico de la siguiente manera:

    Cart::add(
        $producto->id, 
        $producto->descripcion, 
        $producto->quantity = 1, 
    );

Al tener una coma (,) en $producto->quantity = 1, esta esperando un parámetro mas, la función va a ejecutarse probablemente pero con errores.

Lo mismo aplica para una consulta SQL: Por ejemplo: "SELECT id, descripcion, quantity, FROM table" dicha sentencia está mal nuevamente por la coma (,) solo que en SQL la consulta no va a ejecutarse y probablemente obtengas un error.

Saludos!

¿No es la respuesta que buscas? Examina otras preguntas con la etiqueta o formula tu propia pregunta.