2012-07-22 27 views
0

如何使用CakePHP 2.2.1中的HtmlHelper類輕鬆生成HTML鏈接?在CakePHP 2.2.1+中生成一個html鏈接?

想象一下,我宣佈了一條路線,將/finest-perfumes-ever-2012路由到Perfumes/Index控制器/操作。

我需要這個生成的鏈接是:

somedomain.com/finest-perfumes-ever-2012 //Generate link HAS to obey Routes I've set. 

相反的:

somedomain.com/Perfumes/Index 

documentation似乎並沒有做很多很好地解釋瞭如何實現這一點的。

回答

1

不知道您是否錯過了2012意外或您的問題比我下面的答案更復雜。假設2012並不重要:

蛋糕使用了一個非常漂亮的功能 - reverse routing

如果你已經正確設置了一切,下面應該輸出你想要的。

<?php 
Router::connect(
    '/finest-perfumes-ever', 
    array('controller' => 'perfumes', 'action' => 'index') 
); 

echo $this->Html->link('View Finest Perfumes!', array('controller'=>'perfumes', 
                 'action' => 'index')); 

提供您的網址完全匹配路由參數(使用HTML幫助創建時),反向路由將查找你想要的路線是什麼,並相應地輸出鏈路。

如果2012是很重要的,你或許可以傳遞參數得到這個工作 - 有一些examples here

+0

我忘了添加2012年,我編輯了它。你是說我需要在每個視圖中使用這個'Router :: connect'來調用這個URL嗎? – 2012-07-22 15:16:12

+1

'Router :: ...'進入你的'app/Config/routes.php'中。然後,無論何時您使用上述方式創建鏈接,它都會自動輸出爲「最好的香水」。如果這是有道理的? – Ross 2012-07-22 16:22:36

+1

它的確如此,但你的回答並沒有說明我應該在哪裏放置'Router :: connect'代碼。它會進入一些路由配置文件,還是進入視圖本身? – 2012-07-22 17:44:16

0

在最後所有路由語句定義路由配置到你的應用程序/配置/ routes.php文件。

你可以通過passing an argument to the action來做同樣的事情,並在你的routes.php文件中定義它。

請問是否它不適合你。