Префикс маршрутизации CakePHP - PullRequest
3 голосов
/ 14 января 2011

Уточненный вопрос: я понимаю использование 'admin' => true / false, а также в моем случае 'user' => true / false и могу создавать ссылки, подходящие для каждого сценария, однако я ищуспособ реализовать это в файле маршрутов.Например, это уже есть в файле маршрутов:

Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));

Однако я также хотел бы, чтобы любая ссылка с префиксом делала такое же перенаправление и удаляла префикс .. Я пытался:

Router::connect('*/pages/*', array('controller' => 'pages', 'action' => 'display', 'user'=>false));
Router::connect('/user/pages/*', array('controller' => 'pages', 'action' => 'display', 'user'=>false));

Но это не работает.Любая помощь?Приветствия

---------- (оригинальный вопрос ниже) --------

Просто быстрый .. Я не уверен, как предотвратить префиксНапример, если я нахожусь в domain.com/admin/order или domain.com/user/order, которые представляют собой действия admin_ и user_ в контроллере заказов, а навигационное меню содержит ссылки на отображение страниц (отображение действий страниц контроллера, **), когдана них нажимают, они автоматически имеют префикс текущего префикса.Как я могу установить в файле маршрутизатора перенаправление префиксов с подстановочными знаками (т. Е. / pages / )?

edit- Я имею в виду, что я хочу перенаправить на URL без префикса ...потому что, когда пользователь находится в префиксе url и щелкает ссылку, которая является просто controller => action =>, он прибегает к автоматическому префиксу ссылки с текущим префиксом, в данном случае admin или user, когда я просто что-тоссылка без префикса.(т.е. я бы предпочел, чтобы торт использовал префиксы только тогда, когда это действительно указано в соответствующей ссылке, а не продолжал использовать их на каждом простом вспомогательном контроллере html, ссылка действия).

Ответы [ 2 ]

1 голос
/ 14 января 2011

Если вы используете $ html helper для создания ссылок, тогда вы можете использовать

$html->link('users', array('prefix' => $this->params['prefix'],'controller' => 'users','action' => 'index'))
0 голосов
/ 14 января 2011

Я не пользователь cakePHP, так что это немного удар в темноте, но в среде Zend, в представлении, которое вы можете использовать $this->baseUrl('controller/action');, это даст вам необходимый URL.

Например, если я был на www.example.com / admin / умеренный / , и я закодировал ссылку для просмотра, используя:

<a href="users/search">Search for a user</a>

ссылка будет:

www.example.com / admin / умеренный / пользователи / поиск

, если я воспользуюсь:

<a href="<?= $this->baseUrl('users/search'); ?>">Search for user</a>

вывод теперь будет:

www.example.com / users / search .

После быстрого поиска в Google я думаю, что альтернатива cakePHP Router :: url (массив ('controller' => 'users', 'action' => 'search'), true);

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