2012-09-12 91 views
0

我正在使用cakephp 1.3。這裏是我的問題:Cakephp路由沒有給出正確的結果

我有一個名爲「學習」的控制器和一個名爲「教室」的方法。

要進入課堂的方法,我用這個鏈接:http://www.url.com/learns/classroom/15

我想它是這樣的:http://www.url.com/class/15

這是我怎麼設置路由:

Router::connect('/:class/:id', array('controller' => 'learns', 'action' => 'classroom'), array('id' => '[0-9]+')); 

我真的不知道爲什麼它不工作。我閱讀了文檔,我剛剛從食譜中複製了此解決方案。

感謝您的幫助。

回答

1

我沒有看到你的路由器語句有什麼問題。雖然我不確定你是否真的想要/:class /:id而不是「/class /:id」。看到不同?第二版中沒有冒號。

這告訴路由器,任何以/ class/[an-id]開頭的請求都應該映射到您的規則。把它作爲/:class意味着你傳遞了一個參數給路由器。它可以是任何/富/ 15/酒吧/ 15和這些參數會在你$這個 - > PARAMS [ '類']$這個 - > PARAMS可用[ '身份證']假設這條規則 - >/:class /:id

在你的問題中你說「我真的不知道爲什麼它不工作」。請避免這些陳述,因爲它沒有提到有關實際問題的任何事情。

請告訴我們你期待什麼?你看到了什麼?這是一個錯誤嗎?還是警告?如果您完全看到其他內容,例如執行了不同的操作,則可能是由於路由器實際工作的事實。如果你有一個貪婪的路線和正常的路線是這樣的:

/用戶/ *和 /用戶/:ID

第二url不會提出任何要求相匹配爲/用戶/ *爲貪婪,並且會將所有請求集中到自身,除非第一個路由規則返回false。

如果這是你的情況,我建議你閱讀如何編寫自定義路線類。總之,自定義路線類嘗試使貪婪路線不那麼貪婪。爲了更好的解釋這裏是一個很好的文章標記故事:http://mark-story.com/posts/view/using-custom-route-classes-in-cakephp

cakephp中的路由是最令人困惑的主題之一,可能需要一段時間,然後才能得到你的頭。食譜是你最好的朋友。讀取並重新讀取所有內容,直到確定每個路由元素在路由規則中的作用。

相關問題