CakePHP $ this-> Auth-> user(" id")总是返回null?

时间:2015-10-20 21:04:14

标签: php cakephp cakephp-2.0

我有一个函数用于获取Auth组件的用户ID。它不使用return json_encode就可以正常工作。问题是我需要使用json_encode,因为我从ajax请求获取值。 使用json_encode它始终会将null返回到ID,我无法理解为什么会发生这种情况。问题在于下面的函数indexAjax()

我如何将$this->Auth->user("id")json_encode一起使用并且不返回null?

尝试。

//using $this->set it works fine
public function index() {       
                $id = $this->Auth->user("id");                
                $empresas = $this->Empresa->find('all', array(
                            'fields'=>array("id", "nomeFantasia", "cnpj",
                                    "telefone1", "telefone2", "celular", "aberto"),
                            'conditions'=>array("users_id = "=> $id)            
                           ));             
                debug($id) or die;
                //$this->set(compact('empresas'));
    }



//with json_encode always return null
 public function indexAjax() {      
                $this->autoRender = false;
                $id = $this->Auth->user("id");
                $empresas = $this->Empresa->find('all', array(
                            'fields'=>array("id", "nomeFantasia", "cnpj",
                                    "telefone1", "telefone2", "celular", "aberto"),
                            'conditions'=>array("users_id = "=> $id)            
                           ));
                return json_encode($id);                
    }

1 个答案:

答案 0 :(得分:0)

解决了这个问题。我的解决方案是当用户登录时我获得了用户ID并在会话中写入,所以当我需要这个id时,我直接从会话中获取而不是来自AuthComponent。

有效。