39049


cakephp3にて、セッションを設定し、キーを与えているのですが、そのキーを取得することは可能ですか？

[code]

    $this->Session->write('add',
                    [
                        'userid' => $request['userid'],
                        'username' => $request['username'],
                        'password' => $request['password'],
                        'mailaddress' => $request['mailaddress'],
                        'regdate'=> $date
                ]);
    
[/code]

上記の'add'を取得して、その値により処理を変更したいのですが、可能でしょうか？


CC BY-SA 3.0
2017-10-26T09:07:26.780
39046
2017-10-26T11:24:57.020
2017-10-26T11:24:57.020
13199
25922
question
php cakephp
sessionのキーの取得は可能ですか？


単純にキーの有無を調べたいのであれば、 `Session::check($key)` を使用します。

Controller上であれば、以下のようにして分岐します。

[code]

    if ($this->request->getSession()->check('add')) {
        // 'add' が存在する場合の処理
    }
    
[/code]

Session::check($key)  
<https://book.cakephp.org/3.0/ja/development/sessions.html#Session::check>

(CakePHP <= 3.4 であれば、 `$this->request->getSession()` の代わりに
`$this->request->session()` としてください。

* * *

また、`Session::read()` にて、セッションに記録されている全ての内容を取得できます。

Controller上で、Sessionのキーリストを取得するのであれば、以下のようにします。

[code]

    $sessionKeys = array_keys($this->request->getSession()->read());
    
[/code]

Session::read($key)  
<https://book.cakephp.org/3.0/ja/development/sessions.html#Session::read>


CC BY-SA 3.0
2017-10-26T11:07:50.700
39049
2017-10-26T11:07:50.700
2668
39046
answer