Conected 사용자의 ID를 MainController의 정적 변수에 저장하고 있지만 다른 컨트롤러에서이 변수에 액세스해야합니다. 변수에서 값을 가져 오려고하면 결과가 항상 변수의 초기 값이됩니다. 심지어 변수를 이미 수정 한 경우에도 마찬가지입니다.CakePHP를 사용하는 PHP의 정적 변수/메소드
class MainController extends AppController {
//...
public static $loggedClienteId;
//functions
public function loginCliente(){
//code...
self::$loggedClienteId = $cliente['Cliente']['id'];
var_dump(MainController::$loggedClienteId); //returns the correct value.
return $this->redirect(array('controller' => 'clientes', 'action' => 'index'));
}
}
그래서, 다른 컨트롤러에 ...
는 "MainController.php"를 포함;class ClientesController extends AppController {
public $helpers = array('Html', 'Form');
public function index() {
var_dump(MainController::$loggedClienteId); //null, althought it already has a value...
$this->set('clientes', $this->Cliente->find('all'));
}
//functions...
}
왜 그런가?
변경된 값을 페이지 전체에 유지할 필요가없는 경우 값 저장 및 검색을위한 클래스 구성을 통해 읽고 쓸 수 있습니다. 정적 해킹이 필요하지 않습니다. – mark