CI框架使用URL的前提是需要加載輔助函數$this->load->helper('url');當然我建議大家將所有需要加載的東西寫在構造方法內,這樣就不需每個控制器每個方法都去調用一次了。
CI框架的URL跳轉問題是一個不可忽視的問題,還記得剛開始接觸CI框架時,跳轉永遠不對,無論是base_url還是site_url總是找不到正確的位置,下面先說下base_url和site_url的區別和使用的不同位置:
base_url:書寫方式base_url('index.php/Home/index');//index.php是入口文件,Home是控制器,index是方法;他主要是用於引用文件的路徑和前后台之間跳轉時使用,需要聲明入口文件。
site_url:書寫方式site_url('Home/index');//Home是控制器,index是方法;他主要用於同一個入口文件下的跳轉,不需要聲明入口文件,他在哪個文件內就默認在此文件下跳轉。
base_url()表示的是CI框架根目錄,site_url()表示的是他所在模塊的根目錄(例如在admin文件下,則表示admin文件夾下的目錄)。
當然還有一個最重要的問題就是在使用這兩個方式跳轉之前,需要修改前后台文件下的config/config.php,如下:
home/config/config.php文件 $config['base_url'] = 'http://localhost/Ci/';//http://localhost/Ci/為你CI框架的路徑
admin/config/config.php文件 $config['base_url'] = 'http://localhost/Ci/';//http://localhost/Ci/為你CI框架的路徑
配置虛擬主機或上線后 $config['base_url'] = 'http://www.baidu.com/'寫域名
修改完了這些你的路徑跳轉已經配置好了,快去嘗試一下吧。
CI框架的傳值問題其實是一個很簡單的問題,如下:
base_url('index.php/Home/index/3');//這個3就是你想要傳遞的值;
site_url('Home/index/3');//這個3就是你想要傳遞的值;
當然在傳值成功后,在另一個頁面我們需要接受他傳遞過來的值;
$this->uri->segment(1);//獲取控制器名
$this->uri->segment(2);//獲取方法名
$this->uri->segment(3);//獲取參數值
做完這些,URL的跳轉、傳值與接收參數已經做完了,可以完成CI框架的URL操作了。
