我有一个函数用于获取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);
}
答案 0 :(得分:0)
解决了这个问题。我的解决方案是当用户登录时我获得了用户ID并在会话中写入,所以当我需要这个id时,我直接从会话中获取而不是来自AuthComponent。
有效。