Ссылка с другим префиксом на странице с предыдущим префиксом в cakephp: 2.5.4

Я пытаюсь добиться ссылки как cake_proj/prefix2/controller2/action на этой странице, кто ссылка — cake-proj/ но 'prefix1' => true в моем routes.php как это home страница, так что в конечном итоге его ссылка cake_proj/prefix1/controller1/action, Так что теперь я пытаюсь достичь cake_proj/prefix2/controller2/action с помощью метода ссылки помощника HTML-

<?php
echo $this->Html->link(
'<i class="glyphicon glyphicon-group"></i> Test Link', array(
'prefix' => 'prefix2',
'controller' => 'controller2',
'action' => 'prefix_action'), array(
'escape' => FALSE)
);
?>

Но с этим я получаю ссылку как cake_proj/prefix1/controller2/prefix_action обратите внимание, что здесь не меняется префикс. Я не хочу терять возможности маршрутизации CakePHP, но все же хочу преодолеть эту проблему. Я сослался на некоторые из ранее отвеченных вопросов, но не работал для меня. Пожалуйста помоги.

2

Решение

Решение для вас .. хотя не проверено работает отлично для меня. Вот решение, ура!

в AppController.php

public function beforeFilter() {
$this->set('prefixUsed',$this->request->prefix);
}

в your_view.ctp

<?php
echo $this->Html->link(
'<i class="glyphicon glyphicon-group"></i> Test Link', array(
$prefixUsed => false,
'prefix2' => true
'controller' => 'controller2',
'action' => 'prefix_action'), array(
'escape' => FALSE)
);
?>

Здесь идея состоит в том, чтобы установить переменную $prefixUsed в AppController.php для использования всеми видами и даже макетами в beforeFilter(), а затем использовать эту переменную в представлениях, чтобы установить его в false и сделать желаемое 'prefix' => true, Мы используем $prefixUsed динамически определять префикс. Дайте мне знать, если это сработало для вас, до тех пор, GoodBye …;)

3

Другие решения

Других решений пока нет …