我正在尝试这样做:(伪代码)
if(USER IS LOGGED IN){
Router::connect('/', array('controller' => 'films', 'action' => 'index'));
} else {
Router::connect('/', array('controller' => 'users', 'action' => 'register'));
}
如果他们已登录,只需将他们重定向到他们的“仪表板”,或者如果他们没有注册就要求他们注册!
这种不好的做法是在CakePHP的routes.php中包含这个IF语句吗?
答案 0 :(得分:1)
它可能会产生问题,因为会话通常会在以后启动。 为什么不像我一样在所谓的“OverviewController”中切换动作/视图?
if (UID) {
$this->_actionOne();
} else {
$this->_actionTwo();
}
然后调用自己的视图:
$this->render('some_view');
答案 1 :(得分:0)
是的,确实如此。虽然@mark从蛋糕的角度指出了原因,但原因是因为你正在混合模块功能 当有人进入电影/索引而您希望他先注册时,您正在将他从电影控制器中重定向。所以,只需添加一个重定向或一个注册链接。
如果您仍然希望它自动执行,您可能应该创建一个router_controller(坏主意)。
蛋糕解决方案是留在胶片控制器,并在索引功能..
但是,在视图中,不要显示默认输出,而是某种“注册”元素..