在CakePHP中链接静态页面而不附加控制器

时间:2011-09-19 18:24:26

标签: php cakephp cakephp-1.3

所以我在视图中创建了几个静态页面>页面文件夹。它们是contact.ctp和privacy.ctp。在我的routes.php中,我这样做是为了通过访问domain.com/contact和domain.com/privacy来查看它们:

    Router::connect('/contact', array('controller' => 'pages', 'action' => 'display', 'contact'));

    Router::connect('/privacy', array('controller' => 'pages', 'action' => 'display', 'privacy'));

现在,当我在页脚链接它们时:

    <li><?= $this->Html->link('Contact', array('controller' => 'pages', 'action' => 'display', 'contact')); ?></a></li>

    <li><?= $this->Html->link('Privacy', array('controller' => 'pages', 'action' => 'display', 'privacy')); ?></a></li>

它们链接为domain.com/pages/terms。如何在不提供绝对URL的情况下阻止它附加页面控制器(即不执行:<?= $this->Html->link('Contact', 'http://www.domain.com/contact'); ?>或者这是唯一的其他方式?

4 个答案:

答案 0 :(得分:3)

您可能会在Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));之后放置这些路线,只需颠倒该顺序,它就应该有效。

答案 1 :(得分:1)

ROUTE

Router::connect('/*', array('controller' => 'pages', 'action' => 'display'));

VIEW

 echo $this->Html->link('Target', $this->Html->url(array('controller'=>'pages', 'action'=>'display', 'target', 'ext'=>'html')));

OUPUT

<a href="target.html">Target</a>

答案 2 :(得分:0)

使用实际链接?

<a href ="/contact">Contact</a>

并且:

<a href ="/privacy">Privacy</a>

短而甜蜜^ _ ^

答案 3 :(得分:0)

对于SE后代,为了简洁,您可以使用Router::url( )

<li><a href="<?php echo Router::url('/contact'); ?>">Contact</a></li>