Session CakePHP:Can';无法登录用户';s使用身份验证和会话的组ID
我是CakePHP的初学者,正在尝试构建我的第一个应用程序 我有以下登录代码:Session CakePHP:Can';无法登录用户';s使用身份验证和会话的组ID,session,cakephp,authentication,cakephp-1.2,Session,Cakephp,Authentication,Cakephp 1.2,我是CakePHP的初学者,正在尝试构建我的第一个应用程序 我有以下登录代码: function login() { if ($this->Session->read('Auth.User')) { $result = $this->User->find('first', array( 'conditions' => array( 'User.id' => $this->A
function login() {
if ($this->Session->read('Auth.User')) {
$result = $this->User->find('first', array(
'conditions' => array(
'User.id' => $this->Auth->user('id')
),
'fields' => 'Group.id'
));
$groupId = $result['Group']['id'];
$this->Session->write('Auth.Group.id', $groupId);
$this->Session->setFlash('You are logged in with Group ID ' . $groupId . '!', 'auth');
}
}
如您所见,我正在设置Auth.Group.id
会话变量以及Auth flash
但是,在我的app/views/layouts/default.ctp中
<?php echo $session->flash() ?>
您是否将调试级别设置为2?(在core.php中)
setFlash的第二个参数是用于呈现消息的元素的名称,在您的示例中为app/views/elements/auth.ctp。如果它丢失了,你什么也得不到是正常的
试试下面的方法
在控制器中:
$this->Session->setFlash('You are logged in with Group ID ' . $groupId . '!'); // notice 2nd param removed
在布局中:
<?php echo $session->flash() ?>
您是否在模型中使用可包含行为?不管怎样,你都应该试着根据下面的内容修改你的代码,看看会发生什么
function login() {
if ($this->Session->read('Auth.User')) {
$result = $this->User->find('first', array(
'conditions' => array(
'User.id' => $this->Auth->user('id')
),
'fields' => 'User.group_id' //CHANGE THIS
));
$groupId = $result['User']['group_id']; //CHANGE THIS
$this->Session->write('Auth.Group.id', $groupId);
$this->Session->setFlash('You are logged in with Group ID ' . $groupId . '!', 'auth');
}
}
如果它显示一个数字,请告诉我,该数字应该是用户的组id。如果是这样的话,您可以使用Containable行为来获取组名,如果这正是您需要的。仍然是nadda。用AppController编辑帖子,问题可能就在那里?
$this->Session->setFlash('You are logged in with Group ID ' . $groupId . '!'); // notice 2nd param removed
<?php echo $session->flash() ?>
function login() {
if ($this->Session->read('Auth.User')) {
$result = $this->User->find('first', array(
'conditions' => array(
'User.id' => $this->Auth->user('id')
),
'fields' => 'User.group_id' //CHANGE THIS
));
$groupId = $result['User']['group_id']; //CHANGE THIS
$this->Session->write('Auth.Group.id', $groupId);
$this->Session->setFlash('You are logged in with Group ID ' . $groupId . '!', 'auth');
}