0
我在MainController中將靜態變量的用戶ID保存在一個靜態變量中,但是我需要在其他控制器中訪問這個變量。當我嘗試從變量中獲取值時,即使我已經對其進行了修改,結果始終是該變量的初始值。PHP中使用CakePHP的靜態變量/方法
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