我只是想知道如何在cakephp中实现动态路由配置,或者这样我可以创建两条路径:
Router::connect('/', array('controller' => 'users', 'action' => 'login'));
Router::connect('/', array('controller' => 'users', 'action' => 'dashboard'));
每次用户访问我的网站时都不会触发错误。我想要做的是在用户未登录时将'/'设置为我的默认登录页面,但是如果用户已登录并且存在Auth会话,我想将其设置为'/'但是指向用户的仪表板。
我认为在routes.php中导入会话会起作用,但这不是我预期的方式:
App::import('Session', 'Component');
$this->Session = new SessionComponent;
if($this->Session->check('Auth.User')) {
Router::connect('/', array('controller' => 'users', 'action' => 'dashboard'));
} else {
Router::connect('/', array('controller' => 'users', 'action' => 'login'));
}
非常感谢任何帮助,我相信很多人都在等待答案。 非常感谢你提前。 祝你节日快乐。
答案 0 :(得分:4)
我只需在控制器级别上切换它。将您的/
路线指向UsersController::home
,然后执行:
function home() {
if ($this->Auth->user()) {
$this->dashboard();
} else {
$this->login();
}
}
function dashboard() {
$this->render('dashboard');
}
function login() {
$this->render('login');
}