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

I have a function that I use to get the user id of Auth component. It works fine without use return json_encode. The problem is that I need this works with json_encode because I get values from ajax request. Using json_encode it always return null to id and I can't understand why does it occur. The problem is with the function indexAjax() below.

How could I use $this->Auth->user("id") with json_encode and it not return null ?

Trying.

//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);                
    }

solved the problem. My solution was when user make login I get the user id and write in session so when I need this id I get from session directly and not from AuthComponent.

It works.