如何在登录后记住URL并重定向到同一URL,而不是默认页面

时间:2011-09-28 05:57:52

标签: cakephp

我目前正在使用cakephp,并且在重定向页面时遇到问题。默认情况下,登录用户进入特定页面后。现在我想稍微改变一下,但不想打扰默认功能。如果用户未登录,则通过以下功能将用户重定向到登录页面:

$this->Auth->loginAction = array(
            'controller' => 'users',
            'action'     => 'login'
        );

我已经定义了一个链接,如果用户在点击时没有登录,则会重定向到登录页面

<div class="bid-button"><a href="/users/login" class="b-login-big"></a></div>

或点击

时完成此操作
<?php if($session->check('Auth.User')):?>
    <div class="bid-loading" style="display: none; height:59px;"><?php echo $html->image('ajax-arrows-white.gif');?></div>
    <div class="bid-button"><a class="bid-button-link button-big" title="<?php echo $auction['Auction']['id'];?>" href="/bid.php?id=<?php echo $auction['Auction']['id'];?>">Bid!</a></div>
<?php endif;?>

现在我要做的是,如果用户正常登录,他应该在登录后进入默认页面,但是如果他点击该链接,那么用户应该在登录后重定向到同一页面,而不是默认页面。可以通过以下方式获取用户在单击链接后重定向到登录页面的页面的URL

<?php echo AppController::AuctionLinkFlat($auction['Auction']['id'], $auction['Product']['title']);?>

我将如何做到这一点?我不知道怎么做,怎么做。请给我一些解决方案。

1 个答案:

答案 0 :(得分:1)

在用户控制器中添加到beforeFilter:

function beforeFilter() {
$this->Auth->autoRedirect = false;
parent::beforeFilter();
}

您也可以将重定向替换为用户控制器的登录方法:

$this->redirect($this->Auth->redirect());