Как назначить значение массива переменной сеанса в zend framework

Я пытаюсь создать переменную сессии и назначить значения в массиве этой переменной сеанса. Как мне это сделать. Я создаю, как показано ниже, но я не могу добраться до него.

$post = Zend_Controller_Front::getInstance()->getRequest()->getParam('key');
$searches = new Zend_Session_Namespace('searches');
$parthis= $searches->partssearched;
if(!is_array($parthis)){
 $parthis->toArray();
 $parthis[0]=$post;
} else {

$count= sizeof($parthis)."";
if ($this->rows ) {
 if ($count==0) {$parthis[0]=$post;}
 //$searches[$count]=$this->rows;
 echo $parthis[0]."HERE";
} else {
 $parthis[$count]=$post;
 foreach($parthis as $hist) {
 echo $hist;
 }

}
}

$this->rows поступают с контроллера и выводятся результаты запроса базы данных.

То, что я пытаюсь сделать здесь, это то, что я хочу сохранить значение Get в переменной сеанса, несущей его как массив.

Должен быть как $parthis= array (value1, value2, value3); и каждый раз, когда пользователь передает значение в URL-адресе, он должен добавить к нему.

спасибо

2 ответа

Я думаю, вы пытаетесь это сделать.

$key = Zend_Controller_Front::getInstance()->getRequest()->getParam('key');
$searches = new Zend_Session_Namespace('searches');
if (!is_array($searches->partssearched)) {
 $searches->partssearched = array($key);
} else {
 array_push($searches->partssearched, $key);
}

это создаст и обновит ваш массив, вы можете просмотреть его с помощью print_r($searches->partssearched);

Если вы пишете это с помощью действия, вы можете использовать это вместо 1-й строки.

$key = $this->getRequest()->getParam('key');


вы можете использовать, как показано ниже

$this->objSess = new Zend_Session_Namespace('searches');

$details[$ItemID]=array(
 'itmeid'=>$ItemID,
 'itemname'=>$itemname['ItemName'],
 'qty'=>$Quantity,
 'price'=>$Price,
 'originalprice'=>$itemname['OriginalPrice'],
 'saveprice'=>number_format($itemname['OriginalPrice']*$Quantity,2),
 'restaurantid'=>$RestaurantID,
 'Conversionsymbol'=>$conversionsymbol,
 'ConversionRate'=>$currencyrate,
 );

$this->objSess->ORDERITEMS=$details;

или вы также можете использовать альтернативный способ

$this->objSess->ORDERITEMS[$ItemID]['qty']=$details[$ItemID]['qty'];
$this->objSess->ORDERITEMS[$ItemID]['price']=$details[$ItemID]['price'];

надеюсь, это поможет вам

licensed under cc by-sa 3.0 with attribution.