2016-07-15 15 views
0

У меня есть action, который я calling это два времяКак сохранить идентификатор в контроллере?

Controller.php 
UserController extends Controller { 
    public actionCopy($id = false){ 

    if($id){ 
    //redireting to a view 
    } 
    else{ 
    //rediredtion to a differnet view 
    } 


    } 
} 

Я получаю id первым то из first view я снова подхожу к Copy action без идентификатора так еще часть не работает северо-западом, но в этом я хочу получите $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.

Любой помощь appreaciated

+2

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

+1

Вы можете использовать все обычные PHP способы передачи вокруг данных, таких как '$ _POST, $ _GET, $ _SESSION, $ _COOKIE' и т. Д. (Используя синтаксис ванильного PHP или Yii). Какой из них зависит от структуры вашего приложения и того, как пользователь перемещается между двумя действиями –

ответ

0

Просто попробуйте это,

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 
      } 
     } 
    } 
} 
Смежные вопросы