2011-10-04 59 views
0

我有一個控制器與多個功能,其中有一個變量。我想從另一個函數訪問這些變量。有任何想法嗎?cakephp,如何將變量存儲在另一個函數內可重用?

class RoomsController extends AppController { 

public $helpers = array('Js' => 'Jquery'); 
public $components = array('RequestHandler'); 

function test1(){ 
     $balcony = $_REQUEST['qwe']; 
     $this->set('qwe',$qwe); 
} 
function test2() { 
     $occy = $_REQUEST['wer']; 
     $this->set('wer',$wer); 
} 

function test3() { 
     $deck = $_REQUEST['ert']; 
     $this->set('ert',$ert); 
} 

function success() { 
    // i want to use $qwe, $wer and $ert here 
} 

有關如何做到這一點的任何想法?我是否需要設置全局變量public $qwe;

感謝

+0

你什麼時候調用'success()'? *通常*你不會在任何其他控制器動作的同一個請求中調用它,所以問題*應該是沒有意義的。 – deceze

+1

你可以使用會話 - > http://book.cakephp.org/view/1312/write – Rikesh

回答

2

您可以創建控制器屬性,但它會打破框架的設計,所以我建議使用配置類用於此目的,可以存儲變量值和使用這個類檢索,這裏有一個文檔:

http://book.cakephp.org/view/42/The-Configuration-Class

可以存儲變量會話,如果你重定向後,需要它們的值:

$this -> Session -> write("variable", "value"); 

和檢索:

$this -> Session -> read("variable"); 
+0

你可以舉一個例子爲基礎的例子嗎? – Patrioticcow

+0

你想要設置爲全局變量? – Headshota

+0

'$ qwe,$ wer和$ ert' – Patrioticcow

1

您可以雖然現在有很多錯誤的和模糊的代碼使用CakePHP的會話

$this->Session->write('qwe', $qwe);\\ in test1 

$qwe= $this->Session->read('qwe'); \\ in sucess 

http://book.cakephp.org/view/1312/write

做。

function test1(){ 
    $balcony = $_REQUEST['qwe']; 
    $this->set('qwe',$qwe);    
} 

在這裏,您正在請求值在$balcony同時用$qwe設置QWE。而且你在所有功能上都做同樣的事情,我想你必須檢查一下。

也作爲deceze表示您沒有正確使用成功功能的流程。

+0

我從窗體通過ajax發佈到控制器。我有3種形式,我將他們全部三個都發布到同一個控制器上。那麼我想抓住所有這些值,並在同一個控制器的另一個功能中使用它們。 – Patrioticcow

+0

你能給我一個在我的例子中使用會話的例子嗎?設置並獲取它? – Patrioticcow

+0

使用方法如下:'$ this-> Session-> write('qwe',$ qwe);' – Rikesh

相關問題