Возможны ли конфигурации CakePHP для динамических маршрутов?или просто МЕЧТА? - PullRequest
2 голосов
/ 25 декабря 2011

Мне просто интересно и интересно, как настроить динамические маршруты в CakePHP или как так, чтобы я мог создать два маршрута, например:

Router::connect('/', array('controller' => 'users', 'action' => 'login'));
Router::connect('/', array('controller' => 'users', 'action' => 'dashboard'));

без появления ошибки каждый раз, когда пользователь заходит на мой сайт. То, что я хочу сделать, это установить '/' в качестве целевой страницы по умолчанию, когда пользователь не вошел в систему, но другим способом, если пользователь вошел в систему и сеанс аутентификации присутствует, я хотел бы установить URL-адрес '/' но указывает на панель пользователя.

То, что я думал, было импортировать сессию в rout.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'));
}

Любая помощь очень ценится, я уверен, что многие из нас ждут ответа. Заранее большое спасибо. И желаю вам счастливых праздников.

1 Ответ

4 голосов
/ 25 декабря 2011

Я бы просто переключил это на уровне контроллера.Укажите свой / маршрут на UsersController::home, там сделайте:

function home() {
    if ($this->Auth->user()) {
        $this->dashboard();
    } else {
        $this->login();
    }
}

function dashboard() {
    $this->render('dashboard');
}

function login() {
    $this->render('login');
}
...