2013-04-30 170 views
0

我有各種靜態頁面,我不想爲他們創建獨立的控制器。Codeigniter URI路由

假設我想創建一個名爲page的控制器,並將所有靜態頁面作爲函數。

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Page extends Frontend_Controller { 

    public function index() 
    { 

    } 

    public function store(){ 
     $this->load->view('public/store'); 
    } 
    public function contact(){ 
     $this->load->view('public/contact'); 
    } 
    public function about(){ 
     $this->load->view('public/about'); 
    }  
} 

反正是有修改的URI路徑,這樣我不會必須鍵入mydomain.com/page/contact但是我可以輸入mydomain.com/contact查看頁面

回答

2

在你application/config/routes.php

可以作爲補充:

$route['contact'] = "page/contacts"; 
$route['store'] = "page/store"; 
... 
+0

它的工作。謝謝 – prakashchhetri 2013-04-30 18:05:31

+0

@ sohanmax02:cool!我喜歡這種容易的東西是在CI :) – raidenace 2013-04-30 18:07:59

+0

它更容易在laravel,雖然....;) – itachi 2013-04-30 18:37:40

1

在我的application/config/routes.php我使用下面的正則表達式來做到這一點。大多數我的工作是比較小的網站,所以我列出所有的控制器在下面的代碼片段(因爲它比列出所有靜態頁面更容易)

$route['^(?!controller1|controller2).*'] = "page/$1"; 

邏輯基本上說,如果路徑不啓動與控制器1或控制器2然後使用頁面作爲控制器的網址類似於http://domain.tld/page

爲了不必爲所有靜態頁面創建10多條靜態路由,它使它非常簡單。