2010-07-23 52 views
0

我正在開發一個遊戲愛好者來學習包含字符信息數據庫的CodeIgniter。我想使用這種URL格式:在解析URL段之前,我該如何避免在CodeIgniter中深入兩層?

http://www.mydomain.com/characters/joe 
http://www.mydomain.com/characters/sam 

所以我有一個控制器稱爲字符。如果我理解CI文檔,我只能在URL中解析「joe」和「sam」,如果我調用函數。例如,假設我定義函數「detail」並將它傳遞給第一個URL段。它看起來像這樣:

http://www.mydomain.com/characters/detail/joe 
http://www.mydomain.com/characters/detail/sam 

我不想在URL層次結構中產生不必要的深度。毫無疑問,必須通過「字符」控制器中的「細節」功能爲「joe」和「sam」提供詳細頁面,而不要求URL中包含「詳細信息」,或者全部跳過「細節」功能。我怎麼做?

回答

0

您可以檢查 1. URL helperuri_string()將返回的URI段。

2.該URI routing編寫額外的控制器,例如,詳細信息,然後到你的routes.php文件添加

$route['characters/detail'] = "detail"; 

但是,如果你想自動顯示你可以把一切都變成指數(),並從控制器到視圖通過您的變量中的字符/詳細信息視圖。

+0

謝謝,這讓我足夠了解我真正想要的東西。我的路線說: $ route ['characters /(:any)'] =「champions/detail/$ 1」; $ 1傳遞給控制器​​的詳細功能,它使用它來查詢數據庫,傳遞給視圖等。URL mydomain.com/characters/sam返回mydomain.com/characters/detail/sam用來做什麼。謝謝! – Michael 2010-07-28 19:40:58

0

你可以有一個函數接受1(或許多參數)。 THese充當查詢參數。

所以在你的情況下,細節將是函數和sam |喬將是第一個參數傳遞。在你的代碼中,你可以這樣做:

public function detail($player) { 
    //some code here, don't foget to check for a valid and present $player 
} 
相關問題