yii 如何在控制器中保存ID?

vqlkdk9b  于 2023-05-07  发布在  其他
关注(0)|答案(1)|浏览(243)

我有一个action,我调用了两次:

Controller.php
UserController extends Controller {
    public actionCopy($id = false){
    
    if($id){
    //redirecting to a view
    }
    else{
    //redirection to a different view
    }
    
    
    }
}

我首先得到一个id,然后从first view我再次来到Copy action没有id,所以其他部分现在正在运行,但在这里我想得到我从第一个请求得到的$id
我尝试在控制器中定义一个全局变量,如下所示:

Controller.php
    UserController extends Controller {
public $user;
        public actionCopy($id= false){
        
        if($id){
    $this->user = $id;
        //redireting to a view
        }
        else{
        echo $this->user ;// but it has nothing
        //rediredtion to a differnet view
        }
        
        
        }
    
    }

像这样设置。
我知道if condition没有执行,所以$id没有值,但我第一次设置$this->user,那么为什么它没有value

zed5wv10

zed5wv101#

试试这个

class UserController extends Controller {
    public actionCopy($id = false){     
        if($id){
            //set up a session here
            Yii::app()->session['_data_id'] = $id;

            //remaining code here               
        }
        else{
            $id=isset(Yii::app()->session['_data_id'])?Yii::app()->session['_data_id']:NULL; // the id you want from previous request
            if($id!=NULL){
                //remaining code
                unset(Yii::app()->session['_data_id']); //clear it after use
            }
        }
    }
}

相关问题