cakephp, почему я не могу иметь маршрут администратора и маршрут суперпользователя? - PullRequest
2 голосов
/ 30 октября 2009

В core.php я могу определить

Configure::write('Routing.admin', 'admin');

и / admin / controller / index будут работать.

но если я определю оба

Configure::write('Routing.admin', 'admin');
Configure::write('Routing.superuser', 'superuser');

и попробуйте посмотреть / superuser / blah / index / вместо того, чтобы сказать, что контроллер не существует, он говорит

Error: SuperuserController could not be found.

вместо того, чтобы сказать

Error: BlahController could not be found.

Когда я впервые прочитал документацию, у меня сложилось впечатление, что я могу пробежать оба маршрута, а не только один или другой. Есть ли что-то еще, что мне нужно сделать?

Ответы [ 2 ]

4 голосов
/ 30 октября 2009

Я полагаю, что они работают над этим для CakePHP 1.3, но сейчас нам нужно обмануть, чтобы выполнить дополнительную маршрутизацию. Это метод, который я использовал в прошлом.

// SuperUser Routing
Router::connect('/superuser/:controller',
    array('prefix' => 'superuser', 'superuser' => true));
Router::connect('/superuser/:controller/:action/*',
    array('prefix' => 'superuser', 'superuser' => true));

Были некоторые проблемы при создании URL-адресов с использованием метода array('controller' => ...), но я не затрагивал этот проект в течение нескольких месяцев, поэтому не могу вспомнить все предостережения с ним. Это должно хотя бы дать вам отправную точку.

Документ CakePHP объясняет это как-то . Соответствующий раздел начинается примерно с середины разговора о нескольких префиксах.

0 голосов
/ 12 апреля 2010

Если вы используете хитрость Джейсона и испытываете затруднения при создании URL-адресов с использованием синтаксиса массива ('controller' => ...), поместите это в свой appcontroller:

if (isset($this->params['prefix']) && $this->params['prefix'] == 'superuser') { Configure::write('Routing.admin', 'superuser');<br> }

Это заставляет контроллер приложения использовать правильный префикс администратора, который в данном случае является «суперпользователем».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...