链接到cakehp:2.5.4中的“以前有前缀”页面上的另一个前缀



我试图在这个页面上实现链接为cake_proj/prefix2/controller2/action,谁的链接是-cake-proj/,但在我的routes.php中是'prefix1' => true,因为这是home页面,所以最终它的链接是cake_proj/prefix1/controller1/action。所以现在我正试图借助Html助手的链接方法来实现cake_proj/prefix2/controller2/action

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

这里的想法是在AppController.php中设置一个变量$prefixUsed,供每个视图甚至beforeFilter()中的布局使用,然后在视图中使用该变量将其设置为false,并生成所需的'prefix' => true。我们使用$prefixUsed来动态地确定前缀。让我知道这对你是否有效,直到那时再见…;)

最新更新