Cake не знает автоматически, что вы имеете в виду с параметром :username
вашего маршрута. Существует три параметра по умолчанию, которые не требуют дальнейшей настройки, а именно:
:controller
:action
:plugin
Все остальные параметры должны быть указаны с соответствующим регулярным выражением, и дополнительно вам нужно будет указать массив с именем pass
, чтобы сообщить Cake, что он должен передать параметр действию вашего контроллера для этой страницы. В вашем случае маршрут должен выглядеть примерно так:
Router::connect(
'/:username/:controller/:action',
array(), // Since you already have the controller and action in your URL there is no need for further directions here
array(
'pass' => array('username'), // If you want to pass the username to your action
'username' => '[a-zA-Z0-9]+' // What regex the username should match
),
);
Также см. Страницу книги о маршрутизации и, в частности, этот абзац для дальнейшего использования.