如何在 zend 框架中将数组值分配给会话变量


How to Assign an array value to session variable in 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)."<br>";
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 中传递值时,它都应该加起来。

谢谢

你可以

像下面这样使用

$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'];

希望这肯定会对您有所帮助

我认为您正在尝试这样做。

$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);

如果你在操作中写这个,你可以使用它代替第一行。

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