2011-09-19 36 views
3

因此,我在views> pages文件夹中创建了几个静态页面。他们是contact.ctp和privacy.ctp。在我的routes.php文件,我做到了,让他们也可以前往domain.com/contact和domain.com/privacy与观看:在CakePHP中为静态页面添加链接而不添加控制器

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/ /项。如何从附加页面控制器没有给予绝对URL(阻止它即没有这样做:<?= $this->Html->link('Contact', 'http://www.domain.com/contact'); ?>或者是唯一的其他方式

+0

似乎没有是为什么,因为它应该(蛋糕1.3应用反向路由来实现你想要什么)你的代码是不工作的理由。你有没有修改任何核心?编辑 - cake甚至在API中给出了这个例子:'Router :: connect('/ home-page',array('controller'=>'pages','action'=>'display','home')); '所以它看起来你的代码是好的 – Ross

回答

3

你可能把Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));后,这些线路只是颠倒顺序,它应该工作。

+0

哦,是啊!洛塔错综复杂地学习蛋糕,但我更喜欢它学习。非常感谢! –

0

使用一个实际的链接

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

和?:?

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

简短而亲切^ _^

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> 
0

对于SE后人,和简洁起见,你可以使用Router::url()

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