Как сохранить массив в cookie в laravel 5.6 и попасть в контроллер, не заходя на страницу? - PullRequest
0 голосов
/ 15 ноября 2018

у меня под массивом.

$data = array(
  'category'=>array(
     '0'=>1,
     '1'=>15,
     '2'=>7,
     '3'=>76,
   )
)

Как сохранить массив в cookie в laravel 5.6? и как извлечь все значения cookie из cookie?

Ответы [ 3 ]

0 голосов
/ 15 ноября 2018
$data = array(
  'category'=>array(
     '0'=>1,
     '1'=>15,
     '2'=>7,
     '3'=>76,
   )
);

// to store
$json = serialize($data); // convert to string

cookie('name', $json, $minutes);

// to retrive

$value = Cookie::get('name');
0 голосов
/ 15 ноября 2018
setCookieArray( $arr, $cookie, $minutes ) {
    $json = serialize( $arr );
    if( strlen( $json ) > 4096 ){
        foreach( $arr as $key => $val ){
            if( is_array( $val ))
              setCookieArray( $val, $cookie .'_a_'. $key, $minutes )
            else
              cookie( $cookie .'_v_'. $key, $val, $minutes);
        }
    } else {
      cookie('name', $json, $minutes);
    }
}

setCookieArray( array(
  'category'=>array(
     '0'=>1,
     '1'=>15,
     '2'=>7,
     '3'=>76,
  )
), 'mycookie', 10);
0 голосов
/ 15 ноября 2018

Вам необходимо сериализовать массив с функциями json_encode или serialize и сохранить его с помощью Cookie фасад.

Cookie::queue('cookie_name', json_encode($data), $cookieTime);

или

Cookie::queue(Cookie::make('cookie_name', json_encode($data), $cookieTime));
...