Существует ли согласованный способ использования ассоциативных массивов в методах компонента сеанса Cake? - PullRequest
0 голосов
/ 29 февраля 2012

Я спрашиваю, потому что невозможность использовать ассоциативные массивы, которые содержат десятичные или целочисленные значения, означает, что я не могу сохранить размер обуви в сеансе. например следующее не работает:

$shoe_id = 'Shoe_1';
$size = '38.5';
$qu = 1;

$this->Session->write(array('order_array','items',$shoe_id,$size,'quantity'), $qu);

и я должен использовать

$_SESSION['order_array']['items'][$shoe_id][$size]['quantity'] = $qu;  

вместо этого. Есть ли общий способ использования ассоциативных массивов во всех методах компонента сеанса?

Ответы [ 3 ]

1 голос
/ 29 февраля 2012

Я думаю, вам следует изменить способ хранения данных.

Array(
  [order_array] => Array(
    [items] => Array(
      0 => Array(
        name => Shoe_1,
        size => 38.5,
        quantity => 1,
      )
    )
  )
)

Это решит вашу проблему де-факто.

1 голос
/ 29 февраля 2012

На самом деле вам нужна строка для первого параметра и значение для второго параметра.Но ваша строка может представлять массив CakePHP, например:

$this->Session->write('Country.state.city', 'Anyone');

И читать:

echo $this->Session->read('Country.state.city');

Этот массив представляет:

Array
(
    [Country] => Array
        (
            [state] => Array
                (
                    [city] => Anyone
                )

        )

)

вопрос по этому поводу?

0 голосов
/ 01 марта 2012

Ответ состоял в том, чтобы преобразовать десятичные размеры в целые числа (умножить на 10). Затем они могут быть сохранены таким образом:

$this->Session->write('order_array.items.'.$shoe_id.'.'.$size.'.quantity', 1);

Большое спасибо за ваши ответы!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...