2017-05-18 16 views
0

我正在使用cakePHP 3,我試圖在控制器中設置變量,在函數中使用該變量,然後傳遞新值取決於在queryString收到的功能。在控制器中設置一個變量,進行一些操作並返回一個新值CakePHP 3

所有這一切都是通過阿賈克斯的電話。

這是代碼,我在控制器中編寫的函數:

public $taskEditor; 

public function checkState(){ 
    if($this->request->query('isFirstTime')){ 
     $value = $this->taskEditor = false; 
    }else{ 
     $value = !$this->taskEditor; 
    } 
    die(json_encode($value)); 
} 

這和其他人的意圖沒有工作。變量$taskEditor必須存儲一個布爾值。我也嘗試設置一個全局變量,並設置函數beforeRender(Event event)中的值,但沒有奏效。 響應始終是錯誤的和/或蛋糕不識別$taskEditor變量。

任何幫助?

回答

1

每次訪問checkState()控制器都被初始化,所以$taskEditor被重置。

你可以在會議寫這個值:

public function checkState(){ 
    $session = $this->request->session(); 
    if ($this->request->query('isFirstTime') == 'true') { 
     $taskEditor = false; 
     $session->write('taskEditor', $taskEditor); 
    } else { 
     $taskEditor = $session->read('taskEditor'); 
     if (is_null($taskEditor)) { 
      $taskEditor = true; 
     } 
     $session->write('taskEditor', !$taskEditor); 
    } 
    die(json_encode($taskEditor)); 
} 

Reading & Writing Session Data

+0

沒有工作,反應總是錯誤的。 –

+0

所以,你傳遞$ this-> request-> query('isFirstTime')永遠是真的。 –

+0

@Rayann,很確定你打算在那裏引用session對象,而不是Configure。 –

相關問題