在routes.php里面的CakePHP Auth,不好的做法?

时间:2012-03-01 23:00:11

标签: cakephp

我正在尝试这样做:(伪代码)

if(USER IS LOGGED IN){
    Router::connect('/', array('controller' => 'films', 'action' => 'index'));
} else {
    Router::connect('/', array('controller' => 'users', 'action' => 'register'));
}

如果他们已登录,只需将他们重定向到他们的“仪表板”,或者如果他们没有注册就要求他们注册!

这种不好的做法是在CakePHP的routes.php中包含这个IF语句吗?

2 个答案:

答案 0 :(得分:1)

它可能会产生问题,因为会话通常会在以后启动。 为什么不像我一样在所谓的“OverviewController”中切换动作/视图?

if (UID) {
    $this->_actionOne();
} else {
    $this->_actionTwo();
}

然后调用自己的视图:

$this->render('some_view');

答案 1 :(得分:0)

是的,确实如此。虽然@mark从蛋糕的角度指出了原因,但原因是因为你正在混合模块功能 当有人进入电影/索引而您希望他先注册时,您正在将他从电影控制器中重定向。所以,只需添加一个重定向或一个注册链接。

如果您仍然希望它自动执行,您可能应该创建一个router_controller(坏主意)。 蛋糕解决方案是留在胶片控制器,并在索引功能..
但是,在视图中,不要显示默认输出,而是某种“注册”元素..