2014-02-21 138 views
1

我想從一個控制器傳遞到另一個值之間的值。 例如,我有一個會議控制器,我想創建一個新的事件。 我想將Conference ID傳遞給事件以確保這兩個對象是關聯的。 我想使用beforeFilter方法在ivar $會議中存儲。CakePHP的傳遞控制器

這裏是事件控制我的beforeFilter功能

public function beforeFilter() { 
    parent::beforeFilter(); 

    echo '1 ' + $this->request->id; 
    echo '2 ' +  $this->request['id']; 
    echo $this->request->params['id']; 
      if(isset( $this->request->params['id'])){ 
      $conference_id = $this->request->params['id'];  
     } 
     else{ 
     echo "Id Doesn't Exist"; 
     } 
} 

每當我改變的URL是這樣的:

http://localhost:8888/cake/events/id/3 

http://localhost:8888/cake/events/id:3 

我收到一個錯誤說, id未定義。

我該如何繼續?

回答

4

,當你通過URL就可以傳遞數據通過

訪問
$this->passedArgs['variable_name']; 

例如,如果您的網址是:

http://localhost/events/id:7 

然後你訪問這一行

$id = $this->passedArgs['id']; 

當您訪問通過URL接受參數的控制功能ID,您可以使用這些參數就像任何其他變量一樣,比如說你的url看起來像這樣

http://localhost/events/getid/7 

那麼你的控制器功能,應該是這樣的:

public function getid($id = null){ 
    // $id would take the value of 7 
    // then you can use the $id as you please just like any other variable 
} 
4

Conferences控制器

$this->Session->write('conference_id', $this->request->id); // or the variable that stores the conference ID 

Events控制器

$conferenceId = $this->Session->read('conference_id'); 

當然,在上面你需要

public $components = array('Session'); 
相關問題