Как получить массив из объекта сеанса в Kohana? - PullRequest
0 голосов
/ 27 июня 2011

Я использую Kohana 3.0 и мне нужно получить массив из Session объекта.

Например:

$session = Session::instance();

$session->set(
    'myArray'
    array(
        'key1' => 'foo',
        'key2' => 'bar'
    )
);

// How to get specific array element?

Я думал, что это будет работать, но он вернул null.

$session->get('myArray.key2');

Подумав и подумав (ха, ха!) Я обдумываю это ...

$myArray = $session->get('myArray');
$key1 = $myArray['key1'];

Это нормально?Есть ли лучший способ?

PS Когда будет разыменование массива будет доступно ... собираюсь его использовать!=]

$key1 = $session->get('myArray')['key1']; // Lets hope that this work!

1 Ответ

3 голосов
/ 27 июня 2011
  1. Получить базовый вар и использовать стандарт Arr helper

     Arr::get($session->get('myArray', array()), 'key1');
    
  2. Работа с данными сеанса в виде массива:

     $data = & $session->as_array();
     $key1 = Arr::path($data, 'myArray.key1');
     $data['myArray']['key2'] = 'foo'; // also you can set data
    
...