[英]codeigniter routing
我目前正在為客戶端開發CMS,並且我將使用Codeigniter進行構建,因為這只是一個快速的項目,所以我沒有在尋找可靠的解決方案。
要創建頁面,我要保存頁面詳細信息,並根據與mysql表中的段匹配的段來提取正確的頁面。
但是,我的問題是,要使其正常工作,我必須先從控制器的URL中傳遞該段信息,然后再傳遞給模型,這意味着我也希望在URL中也具有該控制器,但我希望將其刪除控制器從帶有路由的URL?
所以
/ page /我們的故事
變成
/我們的故事
這可能嗎
我建議這樣做。
假設您有:控制器“頁面” /方法“顯示”
$route['page/show/:any'] = "$1";
或方法是我不推薦的索引,如果您有類似新聞的內容,請添加以下內容。
$route['news/show/:any'] = "news/$1";
而已。
是的,當然了。 我最近剛剛自己構建了一個Codeigniter驅動的CMS。 路由的全部目的是更改您的網址的外觀和功能。 它可以幫助您脫離控制器/函數/參數/參數范式,並可以選擇想要的URL外觀。
$routes['404_override'] = "pages";
文件中將該文件放在文件底部: $routes['404_override'] = "pages";
然后所有不存在的對控制器的調用都將發送到您的控制器,然后您可以檢查是否存在URL塊。 您還應該將頁面設為默認控制器值。 這是我在最近的項目中用於實現此目的的代碼。 我從某處借來的。 不記得在哪里。
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
函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.