2016-06-24 8 views
0

私は書き込みを(使用する必要があるセッションを設定するには、CakePHPの3.2のドキュメント)から見たので、私はこのように私のコントローラであることを試みた:

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

私は永続変数が必要です。 $ _SESSIONがケーキで作成されていれば$ this-> request-> session() - > read()をうまく使うことができます。 – Matt

+0

これはdocsでカバーされています:http://book.cakephp.org/3.0/en/development/sessions.html – cgTag

答えて

3

CakePHPはセッションをリクエストにバインドします。コントローラのキーに値を設定します。

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

あなたのテンプレートでキーでセッションを読む:

$this->request->session()->read('defaults') 
関連する問題