摘要:如何配置默認(rèn)控制器如果不設(shè)置,默認(rèn)方法是哪個(gè)目錄中配置默認(rèn)方法無法設(shè)置默認(rèn)方法,要不就在指定參數(shù),要不就是不指定參數(shù)如果不設(shè)置參數(shù),默認(rèn)方法是如何載入視圖視圖用文件夾區(qū)分的話,必須帶上文件夾名稱如果視圖文件不是,那么需要寫上后綴名如
如何配置默認(rèn)控制器?如果不設(shè)置,默認(rèn)方法是哪個(gè)?
目錄 application/config/routes.php 中配置
$route["default_controller"] = "home";
$route["default_controller"] = "home/add";
默認(rèn)方法
無法設(shè)置默認(rèn)方法,要不就在url指定m參數(shù),要不就是不指定m參數(shù)
如果不設(shè)置m參數(shù),默認(rèn)方法是index()如何載入視圖?
$this->load->view("home");
$this->load->view("index/home"); //視圖用文件夾區(qū)分的話,必須帶上文件夾名稱
如果視圖文件不是.php,那么需要寫上后綴名如下
$this->load->view("home.html");
視圖公共部分如何載入
$this->load->view("head");
$this->load->view("home");
$this->load->view("foot");
更加優(yōu)雅地引入公共視圖 在home.php引入 load->view("head"); ?> code-code load->view("foot"); ?>如何載入模型?載入后如何使用模型?
手動(dòng)載入
$this->load->model("user"); //載入U(xiǎn)ser模型
第二參數(shù):模型別名 string 第三參數(shù):是否自動(dòng)連接數(shù)據(jù)庫 bool (數(shù)據(jù)庫連接一般放在自動(dòng)連接配置中)
自動(dòng)載入
在application/config/autoload.php中,修改如下:
$autoload["model"] = array("user"); //載入U(xiǎn)ser模型
模型使用
$this->model_name->method();推薦使用原生PHP來替代模板引擎
輸出變量
流程控制:分支
//if // code // code // code //switch // code // code // code
流程控制:循環(huán)
//while(注意,沒有 do…while 的語法) // code //for // code //foreach // code輔助函數(shù)如何導(dǎo)入?輔助函數(shù)的優(yōu)先級(jí)
手工導(dǎo)入
$this->load->helper("url");
自動(dòng)導(dǎo)入
在 application/config/autoload.php 中添加 $autoload["helper"] = array("url");
輔組函數(shù)優(yōu)先級(jí)
application 下的自定義輔組函數(shù) 優(yōu)先于 system下的輔助函數(shù)如何安全獲取輸入?
獲取 GET 參數(shù)
$param = $this->input->get("key",TRUE) // XSS filter
$param = $this->input->get("key",FALSE) // NO XSS filter
如果請(qǐng)求的數(shù)據(jù)不存在,則返回 NULL (下面方法也一樣)
獲取 POST 參數(shù)
$param = $this->input->post("key")
獲取 PUT、DELETE、PATCH 參數(shù)
$param = $this->input->raw_input_stream;$param = $this->input->input_stream("key", TRUE); // XSS Clean
$param = $this->input->input_stream("key", FALSE); // No XSS filter
獲取 COOKIE 參數(shù)
$param = $this->input->cookie("some_cookie", TRUE); // with XSS filter
獲取 SERVER 參數(shù)
$param = $this->input->server("some_data"); //獲取$_SERVER數(shù)據(jù)
獲取 PATHINFO 參數(shù)
$product_id = $this->uri->segment(3, 0); //獲取第三個(gè)片段數(shù)據(jù),如果沒有默認(rèn)0怎樣數(shù)據(jù)驗(yàn)證?驗(yàn)證不通過該如何處理?
加載表單驗(yàn)證類
$this->load->library("form_validation");
設(shè)置驗(yàn)證規(guī)則
$this->form_validation->set_rules("email", "Email", "required");
執(zhí)行驗(yàn)證
$ret = $this->form_validation->run(); //成功返回True,否則返回false
表單輔助函數(shù)
$this->load->helper("form");
然后在視圖中可以輸入如下代碼:
" />如何重寫URL? 如何設(shè)置偽靜態(tài)?
重寫URL -- 隱藏index.php
//以apache為例 開啟mod_rewrite模塊 把對(duì)應(yīng)的目錄AllowOverride設(shè)為All 在根目錄下新建.htaccess文件 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
必須在config中找到config["index_page"] = ""
偽靜態(tài) -- url后面補(bǔ)充.html
必須在config中找到config["url_suffix"] = ".html"如何開啟調(diào)試模式?如何開啟頁面緩存?
開啟調(diào)試
$this->output->enable_profiler(TRUE);
$this->output->enable_profiler(FALSE); //禁用
開啟頁面緩存
$this->output->cache($n); //在控制器中調(diào)用系統(tǒng)核心類如何替換與擴(kuò)展?
系統(tǒng)核心類位于:system/core/
注意:系統(tǒng)核心類只可以替換與擴(kuò)展,不能創(chuàng)建新的
替換
// 文件位于目錄 application/core // 類名要與核心類名一樣 CI_開頭 // 文件名要與系統(tǒng)核心文件名一樣 例如:Input.php class CI_Input { }
擴(kuò)展
// 文件位于目錄 application/core // 類名和文件名必須以 MY_ 開頭。(這是可配置的) 例如:MY_Input.php // 類必須繼承自父類 class MY_Input extends CI_Input { }系統(tǒng)類庫有哪幾種? 不同類型的類庫如何加載使用?
有2種
1、普通類庫文件 位于system/libraries
2、驅(qū)動(dòng)器 位于system/libraries/驅(qū)動(dòng)器目錄
加載普通類庫文件
$this->load->library("class_name");
加載驅(qū)動(dòng)器
$this->load->driver("class_name");類庫文件如何創(chuàng)建自己類庫? 如何替換和擴(kuò)展系統(tǒng)類庫?
創(chuàng)建自己類庫
//在application/libraries目錄下,創(chuàng)建自己的類庫文件 class Someclass { public function some_method() { } }
替換系統(tǒng)類庫
//在application/libraries目錄下,創(chuàng)建與系統(tǒng)類庫文件同名的類庫文件 例如: //application/libraries/Email.php 文件 class CI_Email { }
擴(kuò)展系統(tǒng)類庫
//在application/libraries目錄下,你的新類名和文件名必須以 MY_ 為前綴 例如: //application/libraries/MY_Email.php 文件 //類在定義時(shí)必須繼承自父類 class MY_Email extends CI_Email { }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/25695.html
摘要:昨天發(fā)了一篇即插即用適用于框架的微信網(wǎng)頁授權(quán)模塊,今天想了想干脆整理一個(gè)腳手架好了。如果你是使用的開發(fā)者但只是需要一個(gè)微信網(wǎng)頁授權(quán)模塊而不是整個(gè)框架你可以查看我的另一個(gè)倉庫它是即插即用的。 昨天發(fā)了一篇《即插即用!適用于CodeIgniter框架的微信網(wǎng)頁授權(quán)模塊》,今天想了想干脆整理一個(gè)腳手架好了。 Github倉庫: CodeIgniter-Weixin_Template歡迎交流和...
摘要:核心變化從第一版發(fā)布以來,社區(qū)發(fā)生了巨大變化。這意味著系統(tǒng)必須全部重寫。暫時(shí)不會(huì)為一個(gè)即將停止支持的版本發(fā)布新版本。路由路由功能將被更新。改進(jìn)的日志系統(tǒng)日志系統(tǒng)將被改進(jìn),但具體細(xì)節(jié)尚未確定。第一階段第一階段將側(cè)重于抓住框架最重要的部分。 我們綜合考慮了社區(qū)的愿望和意見后,也對(duì)什么樣的未來對(duì) CI 是最合適的做了一些思考,然后,CI 理事會(huì)對(duì)框架的未來做出了一些決策。預(yù)告一下,未來將會(huì)有...
摘要:要你自定義的類庫中訪問的原始資源你必須使用函數(shù)這個(gè)函數(shù)返回一個(gè)一般來說在你的控制器函數(shù)中你可以通過調(diào)用任何可用的函數(shù)只直接作用在你自己的控制器模型和視圖中當(dāng)你在自定義類中想使用原始類時(shí)你可以這樣做首先定義對(duì)象賦給一個(gè)變量一旦定義 要你自定義的類庫中訪問CodeIgniter的原始資源,你必須使用 get_instance() 函數(shù).這個(gè)函數(shù)返回一個(gè)CodeIgniter super o...
摘要:它提供一套豐富的標(biāo)準(zhǔn)庫以及簡單的接口和邏輯結(jié)構(gòu),其目的是使開發(fā)人員更快速地進(jìn)行項(xiàng)目開發(fā)。文件放在里類名首字母必須大寫,并繼承的類訪問的路徑為項(xiàng)目名入口控制器名控制器的方法參數(shù)。 有的沒的 showImg(http://segmentfault.com/img/bVbOml);阿大鎮(zhèn)文(-_-メ)~ 阿大你太黑了,回去洗把臉看看有沒有救~ 學(xué)習(xí)背景 CI是一個(gè)比較流行的PHP MV...
摘要:把如下代碼添加到目錄下的文件中類的構(gòu)造函數(shù)之前,這其實(shí)就是進(jìn)行變量聲明,文件也是同樣操作。舉一個(gè)我項(xiàng)目中的例子。該類只需要一個(gè)構(gòu)造函數(shù)完成上述功能即可。 最近再給一個(gè)APP寫API,同時(shí)還要寫相應(yīng)的后臺(tái)管理網(wǎng)站。為了便于開發(fā)和代碼組織與管理,我決定采用一個(gè)現(xiàn)有的框架。Codeigniter由于其輕量容易自定制的特點(diǎn)吸引了我,一路開發(fā)過來也有大半年時(shí)間了,寫下一些自己在開發(fā)過程中的一些體...
閱讀 5055·2021-07-25 21:37
閱讀 696·2019-08-30 15:53
閱讀 3359·2019-08-29 18:47
閱讀 695·2019-08-29 15:39
閱讀 2142·2019-08-29 13:12
閱讀 1808·2019-08-29 12:43
閱讀 2998·2019-08-26 11:52
閱讀 1897·2019-08-26 10:15