首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组件中的cakephp3读取会话

组件中的cakephp3读取会话
EN

Stack Overflow用户
提问于 2015-04-09 18:53:32
回答 1查看 6.5K关注 0票数 2

我有一个为cakephp3开发的插件,在我的组件中,我想读取一个存储在会话中的值。

在cakephp 2中,我使用了:

代码语言:javascript
复制
$userId = CakeSession::read('Auth.User.id');

但是,如果我将它用于cakephp 3,则返回以下错误:

代码语言:javascript
复制
Error: Call to undefined method UserPermissions\Controller\Component\UserPermissionsComponent::_hasSession() 
File /Users/info/Sites/cakephp3/vendor/cakephp/cakephp/src/Network/Session.php 
Line: 382

若要在组件中包含会话,请使用:

代码语言:javascript
复制
use Cake\Network\Session;

如何在会话中读取值?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-09 19:13:39

我会在您的initialize()方法中这样做:

代码语言:javascript
复制
use Cake\Controller\Component;
use Cake\Controller\ComponentRegistry;

class YourComponent extends Component{

    public $controller = null;
    public $session = null;

    public function initialize(array $config)
    {
        parent::initialize($config);
        // ....

        /**
         * Get current controller
        */
        $this->controller = $this->_registry->getController();

        $this->session = $this->controller->request->session();

        // You can then use $this->session in any other methods        
        // If debug = true else use print_r() to test
        debug($this->session->read('Auth.User.id')); 
    }        
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29546651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档