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

时间:2013-09-19 01:19:24

标签: php arrays session 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中传递一个值时,它应该加起来。

谢谢

2 个答案:

答案 0 :(得分:0)

你可以使用如下

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

希望这一定会帮到你

答案 1 :(得分:0)

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

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