Сессия еще не началась, когда маршруты проанализированы.Если вы используете обработку сеансов в Cake, они запускаются компонентом Session, который загружается только вместе с контроллером, что происходит после маршрутизации.
Не следует делать маршруты динамическими, так как онииспользуется для обратной маршрутизации:
Router::connect('/dashboard', array('controller'=>'users', 'action'=>'dash'));
$html->link('…', array('controller'=>'users', 'action'=>'dash'));
// -> /dashboard
Если вы сделаете эту динамику, это больше не будет работать как ожидалось:
Router::connect('/dashboard',
array('controller'=>'users', 'action'=>'dash', $_SESSION['user']));
$html->link('…', array('controller'=>'users', 'action'=>'dash', 1));
// -> /dashboard
$html->link('…', array('controller'=>'users', 'action'=>'dash', 2));
// -> /users/dash/2
Маршруты должны быть статическимиМаршруты определяют схему URL ваших приложений, например карту.Это просто не место для какой-либо "настоящей работы".Все динамическое происходит в контроллерах.