2016-06-24 72 views
0

我從CakePHP的3.2文件,要配置一個會議上,我需要使用write()看,所以我想,在我的控制器是這樣的:

use App\Controller\AppController; 
use Cake\Core\Configure; 

class RatingsController extends AppController 
{ 
    public function initialize() 
    { 
     parent::initialize(); 
     $this->loadComponent('RequestHandler'); 
     $this->loadComponent('Paginator'); 
     Configure::write('Session', ['defaults' => 'php']); 
    } 
} 

但這似乎並不成立$ _SESSION數組,如果在我的控制器中執行。

我以爲我通過設置Auth來解決問題,從而能夠訪問$ _SESSION,但是當我通過在上面的init中添加$this->Auth->allow();來打開控制器時,會話變量不再存在。

我需要在哪裏配置Cake來啓動會話?

+0

爲什麼要首先訪問'$ _SESSION'?在使用CakePHP時,您不應該直接訪問任何超級全局變量! – ndm

+0

我需要一個持久變量。我可以使用$ this-> request-> session() - > read()就好了,如果$ _SESSION是由cake創建的。 – Matt

+0

這包括在文檔中:http://book.cakephp.org/3.0/en/development/sessions.html – cgTag

回答

3

CakePHP將會話綁定到請求,例如,爲您的控制器上的某個鍵設置一個值:

$this->request->session()->write('defaults', 'php') 

然後,在您的模板中讀取會話密鑰:

$this->request->session()->read('defaults') 
相關問題