2016-09-29 3 views
1

Например:Как я могу управлять двумя разными маршрутами для одного данного пользователя в CakePHP?

Router::connect(
    '/:username', 
    array('controller' => 'users', 'action' => 'profile'), 
    array('pass' => array('username')) 
); 

Если параметр username предваряется @, то он будет перенаправлять к способу. Если нет, он будет перенаправлен на другой метод.

Примечание: Я использую версию 2.8

+0

Как вы планируете дифференцировать между «имя пользователя» и контроллер? что ты уже испробовал? Что вы нашли до сих пор? Что не сработало? ...и т.д. Всегда полезно показать, что вы внимательно изучили тему перед публикацией здесь. – Dave

ответ

1

Это должно работать:

Router::connect(
    '/@:username', 
    array('controller' => 'users', 'action' => 'action1'), 
    array('pass' => array('username')) 
); 

Router::connect(
    '/:username', 
    array('controller' => 'users', 'action' => 'action2'), 
    array('pass' => array('username')) 
); 
+0

Вы должны изменить порядок, так как '/: username' будет соответствовать всем. – ndm

+0

@ndm, вы правы, я скопировал его в неправильном порядке. Благодаря! –

+0

Отличный !! Оно работает. Большое спасибо. @InigoFlores –