En realidad, estoy creando un carrito de compras. Necesito almacenar el product_id y la cantidad en la sesión, para poder recuperarlos en la página del carrito.
Actualmente, estoy agregando valores a la variable de sesión usando el método push-
$request->session()->push('order.products', $request->product_id);Almacena datos en esta estructura-
array (size=1) 'products' => array (size=2) 0 => string '11' (length=2) 1 => string '9' (length=1)Pero, de esta manera no puedo almacenar la cantidad. Creo que almacenar una matriz asociativa en la sesión puede resolver mi problema.
Entonces, ¿cómo puedo hacer eso?
Por favor pruebalo.
// store data in session. $request->session()->push('productsid', ['order.products'=>$request->product_id]); // then get session data here. $array = Session::get('productsid');Laravel no proporcionó esta función, pero puede lograr lo que desea dentro de una función:
/** * this method will append new values to session stored array, * * This method functionality has advantage over Laravel's session()->push is: * it can accept an associate array as well as normal array * * @param string $session_key the session key which associated with The 'Array' * @param array $appendingArray The array which will be append to existing session-stored array * @return void */ private static function session_append($session_key, $appendingArray) { session()->put($session_key, array_merge( session()->get($session_key), $appendingArray )); } y siempre que dependa del ayudante session() , también puede ser un ayudante global.