用ThinkPHP做過幾個項目後,感覺這個框架蠻不錯的,很適合自己的邏輯習慣,開發起來也快捷,呵呵, 總結了一些項目中常用的東東,希望對初學TP的朋友有所幫助!
約定:
如:
定義控制器類
記錄的修改:
記錄查詢
$User->getDbFields() //獲取當前數據字段
$Model = new Model() // 實例化一個 model 對象 沒有對應任何數據表
$objrs = $Model->query("select * from think_user
where status=1") //自定義查詢
模板:
$this->assign('name',$value); //在 Action 類裡面使用 assign 方法對模板變量賦值,無論何種變量類型都統一使用 assign 賦值
$this->display() // 輸出模版文件
批量賦值
模板標簽:
{ } 或 {// 注釋內容 } //模板注釋
為了方便模板定義,無論輸出的模板變量是數組還是對象,都可以用下列統一方式輸出:
使用函數:
系統變量
快捷輸出
包含外部文件
循環輸出
模版賦值:
模版定義:
注意 name 和 id 表示的含義
// 輸出偶數記錄
// 輸出 key
//子循環輸出
Switch 標簽
比較標簽
If標簽
C操作
A操作
D操作
S操作
F操作
(IN parameter1 INTEGER)
BEGIN
DECLARE variable1 CHAR(10);
IF parameter1 = 17 THEN
SET variable1 = 'birds';
ELSE
SET variable1 = 'beasts';
END IF;
Insert INTO table1 VALUES (variable1);
END
ThinkPHP系統常量
THINK_PATH // ThinkPHP
系統目錄
CONFIG_PATH
//項目配置文件目錄
MEMORY_LIMIT_ON // 是否有內存使用限制
預定義常量
上傳概述
基本上傳功能
批量上傳
需要注意,UploadFile上傳類對多文件上傳並不是采用
Ajax文件上傳
自動生成縮略圖
設置後系統在上傳後會自動生成相同格式的縮略圖。系統默認的縮略圖路徑是上傳文件所在目錄,並且在文件中後面添加_thumb以標識縮略圖文件。縮略圖路徑可以在項目配置文件中配置。
生成多縮略圖
上面的例子表示生成三個大小的縮略圖,並規定了縮略圖文件名後面添加的後綴,和三種縮略圖的寬高尺寸。
更多上傳設置
ThinkPHP在Action來中還提供了和UploadFile類的上傳設置接口,方便在客戶端進行更多的參數設置進行上傳控制。
下面列舉下主要的參數,更多的參數可以參考框架的Action類中的_upload方法。
5.15 重定向
Action類的redirect方法可以實現頁面的重定向功能。
redirect方法的參數用法和U函數的用法一致(參考上面的URL生成部分),例如:
上面的用法是停留5秒後跳轉到News模塊的category操作,並且顯示頁面跳轉中字樣,重定向後會改變當前的URL地址。
如果你僅僅是想重定向要一個指定的URL地址,而不是到某個模塊的操作方法,可以直接使用redirect方法重定向,例如:
Redirect方法的第一個參數是一個URL地址。
5.14 頁面跳轉
在應用開發中,經常會遇到一些帶有提示信息的跳轉頁面,例如操作成功或者操作錯誤頁面,並且自動跳轉到另外一個目標頁面。系統的Action類內置了兩個跳轉方法success和error,用於頁面跳轉提示,而且可以支持ajax提交。使用方法很簡單,舉例如下:
Success和error方法都有對應的模板,並且是可以設置的,默認的設置是兩個方法對應的模板都是:
模板文件可以使用模板標簽,並且可以使用下面的模板變量:
$msgTitle:操作標題
$message :頁面提示信息
$status :操作狀態 1表示成功 0 表示失敗 具體還可以由項目本身定義規則
$waitSecond :跳轉等待時間 單位為秒
$jumpUrl :跳轉頁面地址
success和error方法會自動判斷當前請求是否屬於Ajax請求,如果屬於Ajax請求則會調用ajaxReturn方法返回信息,具體可以參考後面的AJAX返回部分。
這些事thinkphp3.0手冊上有的,自己下載手冊看看
ThinkPHP中如何連接數據庫操作數據庫之前,我們要建立一個Model。在說Model和Action之前,先交代一下Model和Action的保存位置。Model保存在 程序目錄中lib/Model文件夾中,Action保存在程序目錄中lib/Action文件夾中。ThinkPHP系統默認的Model規則是這樣子 的:Model文件文明名類似“Model類名+Model.class.php,並且Model默認的操作數據庫表名字為我們在config.php中 定義的DB_PREFIX+Model類名,Model類名和文件名需要大寫”在Model文件中,定義一個類,擴展Model類,一般寫法如下class 類名Model extends Model{}那麼,現在我們來定義一個Model吧。由於我們數據庫表名稱為cms_article,class ArticleModel extends Model{}文件保存為ArticleModel.class.php。什麼都不用寫,一個Model已經定義完成了。那麼現在,我們繼續我們的Action知識吧。Action和Model很多的規則很接近,不同的是Action不直接操作數據庫,而是需要通過Model對數據庫進行操作。現在我們來定義一個Action來完成操作。class IndexAction extends Action{function index(){$Article = D(”Article”);}}將文件保存為IndexAction.class.php。OK,現在我們刷新一下首頁,如果沒有任何的提示,那麼恭喜你,數據庫連接Model、 Action定義都是正常的。Action中D方法就是調用Model,Article就是我們剛剛定義的那個 ArticleModel.class.php中的Model類~也就是說在定義Model的同時,我們已經完成了對數據庫的連接和對數據庫表操作的准 備~