Мне нужно написать собственный класс сеанса для CodeIgniter? - PullRequest
0 голосов
/ 13 января 2012

Я не могу заставить библиотеку сеансов CI функционировать так, как я хочу. По сути, я храню 2 разных категории данных в сессиях. Данные в двух категориях могут содержать одно и то же значение. В настоящее время моя попытка добавить пару ключ => значение в сеанс не удалась, так как она позволяет только 1 пару ключ => значение связать с массивом. Он переопределяет себя каждый раз, когда я пишу сообщение.

$arr = array(
    'favorite_products' => array(),
    'viewed_products' => array()
    );


$arr["favorite_products"][] = $fav_id;


$this->session->set_userdata($arr);

Это то, что массив выглядит, когда я print_r это:

Array ( [favorite_products] => Array ( [4f1066c2b7fff] => 1648406 ) [viewed_products] => Array ( ))

Я что-то не так делаю или это просто так работает библиотека сессий CI?

1 Ответ

1 голос
/ 13 января 2012

Убедитесь, что вы прерываете сеанс между попытками, но этот код должен работать очень хорошо ...

$arr = array(
    'favorite_products' => array(),
    'viewed_products' => array()
    );


$arr["favorite_products"][] = $fav_id;
$arr["favorite_products"][] = 033333; // another id


$this->session->set_userdata($arr);

должен дать вам ...

Array ( 
    [favorite_products] => Array ( 
        [0] => 1648406, 
        [1] => 033333 
    ),
    [viewed_products] => Array ()
)

Если выпытаясь сделать это между запросами ...

// if it doesn't already exist in the session, create an empty array.
if( ! ($favorite_products = $this->session->get_userdata("favorite_products")))
{
    $favorite_products = array();
}

$favorite_products[] = "new id or info";

$this->session->set_userdata("favorite_products", $favorite_products);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...