2011-11-02 152 views
0

我是cakePHP的新手。我正在尝试创建一个登录页面。我能够创建一个登录页面。我遇到登录重定向问题。当我提交登录凭据时,我将重定向到包含以下文本的页面。Cakephp登录重定向问题

甜,“App”被CakePHP烘烤! 你的tmp目录是可写的。 FileEngine正在用于缓存。要更改配置编辑APP/config/core.php 您的数据库配置文件存在。 Cake可以连接到数据库。

但是,这是不正确的。在我app_controller,我写的代码重定向到不同的页面下方提到:

function beforeFilter() { 
    //Configure AuthComponent 
    $this->Auth->authorize = 'actions'; 
    $this->Auth->actionPath = 'controllers/'; 
    $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login'); 
    $this->Auth->loginRedirect = array('controller' => 'patients', 'action' => 'index'); 
    $this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login'); 
} 

什么我需要做的重定向到/病人/指数?

问候, 巴鲁

回答

0

在config-> routes.php文件改变你的第一线,这....

Router::connect('/', array('controller' => 'patients', 'action' => 'index'));

api55是正确的,但我可以看到你的无奈所以这应该为你即时满足。

0

我要去引述蛋糕预定第一的一部分:

loginRedirect

的AuthComponent记得什么控制器/动作对你 好一会之前,您需要通过 将该值存储在会话中的Auth.redirect键下进行身份验证。 但是,如果未设置此会话值(例如,如果您从外部链接访问 登录页面),则用户将 重定向到loginRedirect中指定的URL。

说完这个,你可能会发现,如果你来自程序中的页面,它会在那之后去那里。

你可以做什么,你可以说authComponent不自动重定向,你管理这部分,怎么样?像这样:

1)在beforeFilter写在你的控制器东西登录操作

$this->Auth->autoRedirect = false; 

2)likethis

if ($this->Auth->user()) { 
    $this->redirect('url'); 
} 

URL可以是绝对或CakePHP的数组,你可以看它在这本书中,只有在登录验证完成后才能执行此代码...您可以像上次登录尝试成功或其他类似操作一样执行其他任何操作

希望这对你的作品:)

+0

但是,行$ this-> Auth-> loginRedirect = array('controller'=>'patients','action'=>'index');应该在成功验证后重定向到患者/索引权限?但是,它不会重定向到患者/指数。 – Balu

+0

它会,如果你不来自你的程序中的另一个网站,如果你尝试访问动作添加,那么你将采取行动添加,如果你直接去登录然后它会去你的loginRedirect – api55