我正在使用cakePHP 3而我正在尝试在控制器中设置变量,在函数中使用该变量然后传递新值取决于所接收函数的public $taskEditor;
public function checkState(){
if($this->request->query('isFirstTime')){
$value = $this->taskEditor = false;
}else{
$value = !$this->taskEditor;
}
die(json_encode($value));
}
。
这一切都是通过ajax的电话。
这是我在控制器中编写的代码和函数:
$taskEditor
这和其他人的意图没有用。变量beforeRender(Event event)
必须存储一个布尔值。我也尝试设置一个全局变量并在函数$taskEditor
中设置值,但是没有用。
响应总是错误的和/或蛋糕不会识别{{1}}变量。
任何帮助?
答案 0 :(得分: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));
}