2011-09-19 68 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>