我试图在这个页面上实现链接为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
来动态地确定前缀。让我知道这对你是否有效,直到那时再见…;)