我目前正在爲一個客戶端的CMS工作,我打算使用Codeigniter來構建它,它只是一個快速項目,所以我沒有尋找一個強大的解決方案。codeigniter路由
要創建頁面,我需要保存頁面詳細信息,並根據與mysql表中的slug匹配的slug來拉出正確的頁面。
然而,我的問題是,爲了這個工作,我必須從URL控制器然後傳遞給模型,這意味着我也有控制器在URL中,我不想要的是它有可能從路由URL中刪除控制器?
所以
/頁/我們的層高
成爲
/我們的層高
這可能
我目前正在爲一個客戶端的CMS工作,我打算使用Codeigniter來構建它,它只是一個快速項目,所以我沒有尋找一個強大的解決方案。codeigniter路由
要創建頁面,我需要保存頁面詳細信息,並根據與mysql表中的slug匹配的slug來拉出正確的頁面。
然而,我的問題是,爲了這個工作,我必須從URL控制器然後傳遞給模型,這意味着我也有控制器在URL中,我不想要的是它有可能從路由URL中刪除控制器?
所以
/頁/我們的層高
成爲
/我們的層高
這可能
是的,當然。我最近自己建立了一個Codeigniter驅動的CMS。路線的全部目的是改變你的網址的外觀和功能。它可以幫助您擺脫控制器/函數/參數/參數範例,並讓您選擇您希望網址的外觀如何。
$routes['404_override'] = "pages";
,然後所有對不存在的控制器的調用都會被髮送到你的控制器,然後你可以檢查是否存在URL塊。您還應該將頁面設置爲默認控制器值。查看我幾個月前回答的similar question here的回答,例如我在Codeigniter CMS中使用的代碼和工作代碼。
這是我在最近的一個項目中使用的代碼。我從某處借了它;不記得在哪裏。
function _remap($method)
{
$param_offset = 2;
// Default to index
if (! method_exists($this, $method))
{
// We need one more param
$param_offset = 1;
$method = 'index';
}
// Since all we get is $method, load up everything else in the URI
$params = array_slice($this->uri->rsegment_array(), $param_offset);
// Call the determined method with all params
call_user_func_array(array($this, $method), $params);
}
然後,我index
功能就是你乾脆把page
功能。
我會推薦這樣做。
假設您有:控制器「頁面」 /法「秀」
$route['page/show/:any'] = "$1";
或方法,我不推薦指數,如果您有類似的新聞,添加以下。
$route['news/show/:any'] = "news/$1";
就是這樣。
我問了一個類似的問題 - 你可能會發現答案很有用:http://stackoverflow.com/questions/3725050/codeigniter-best-routes-configuration-for-cms – BrynJ 2011-01-20 17:04:24