2

我正在尝试实现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通知here它不会改变前缀。我不想失去 CakePHP 的路由功能,但仍然想克服这个问题。我提到了一些以前回答的问题,但对我没有用。请帮忙。

4

1 回答 1

3

适合您的解决方案..虽然未经测试对我来说非常有效。这是解决方案,干杯!

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)
   );
 ?>

这里的想法是在每个视图甚至布局中设置一个变量$prefixUsedAppController.php然后beforeFilter()在视图中使用该变量将其设置为 false 并制作您想要的'prefix' => true。我们正在使用$prefixUsed动态确定前缀。让我知道这是否适合你,直到那时再见......;)

于 2014-11-14T10:59:04.670 回答