Я пытаюсь добиться ссылки как 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, но все же хочу преодолеть эту проблему. Я сослался на некоторые из ранее отвеченных вопросов, но не работал для меня. Пожалуйста помоги.
Решение для вас .. хотя не проверено работает отлично для меня. Вот решение, ура!
в 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 …;)
Других решений пока нет …