当我从一个控制器动作重定向到另一个控制器动作时,我遇到了CakePHP丢失我的Auth设置的问题。
我在这里设置:
$this->Auth->login($this->Authuser);
if($this->Auth->user())
{
//debug($this->Auth->user());
return $this->redirect(array('action'=>'parentportal',$guardianid));
}
如果我取消注释调试,它将在$ this-> Auth-> user中显示数据。但是当我去重定向时......
public function parentportal($guardianid){
$userData=$this->Auth->user();
}
如果我在这里调试,那么价值就没有了。
我已经在网络上进行了很好的搜索,并且我发现所有答案似乎都在调整core.php中的Security.level值 - 但是这个值并没有被读取在这个版本的蛋糕(据我所知)。我甚至在core.php中输入它,看看它是否可行,没有任何改变。
这是我的控制器定义:
class UsersController extends AppController {
public $components = array('Auth','Session','Epd');
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('logout','login','selectorg','consent','parentportal');
}
有谁能告诉我我在这里失踪了什么?提前谢谢!
答案 0 :(得分:0)
您正在将参数传递给login()
,其中记录了任何人。
Check the details on how to configure your login method in the book, and note the pink box
所以你应该使用$this->Auth->login()