總結ThinkPHP使用技巧經驗分享(二)

循環輸出
volist 還有別名 iterate

模版賦值:
$User = D('User')
$list = $User->findAll()
$this->assign('list',$list)

模版定義:
<iterate name="list" id="vo">
{$vo.name}
</iterate>

注意 name 和 id 表示的含義
// 輸出 list 的第 5~15 條記錄
<iterate name="list" id="vo" offset="5" length='10'>
{$vo.name}
</iterate>

// 輸出偶數記錄
<iterate name="list" id="vo" mod="2" >
<eq name="mod" value="1">
{$vo.name}
</eq>
</iterate>

// 輸出 key
<iterate name="list" id="vo" key="k" >
{$k}.{$vo.name}
</iterate>

//子循環輸出
<volist name="list" id="vo">
<iterate name="vo['sub']" id="sub">
{$sub.name}
</iterate>
</volist>

Switch 標籤
<switch name="name">
<case value="1">value1</case>
<case value="2">value2</case>
<default />default
</switch>
其 中 name 屬性可以使用函數以及系統變量,例如:
<switch name="Think.get.userId|abs">
<case value="1">admin</case>
<default />default
</switch>
也 可以對 case 的 value 屬性使用變量,例如:
<switch name="userId">
<case value="$adminId">admin</case>
<case value="$memberId">member</case>
<default />default
</switch>

比較標籤
<eq name="name" value="value">value</eq> // name 變量的值等於 value 就輸出
<neq name="name" value="value">value</neq> // name 變量的值不等於 value 就輸出
<gt name="name" value="5">value</gt> // name 變量的值大於 5 就輸出
<egt name="name" value="5">value</egt> // name 變量的值大於等於 5 就輸出
<lt name="name" value="5">value</lt> // name 變量的值小於 5 就輸出
<elt name="name" value="5">value</elt> // name 變量的值小於等於 5 就輸出


//其實上面的所有標籤都是 compare 標籤的別名
// 其中 type 屬性的值就是上面列出的判斷標籤名稱
<compare name="name" value="5" type="eq">value</compare> // name 變量的值等於 5 就輸出

If標籤
<if condition="$name eq 1 "> value1
<elseif condition="$name eq 2" />value2
<else /> value3
</if>

C操作
操作(動態)配置: 主要用於Action方法裏面
獲取:
C('配置參數')
設置:
C('配置參數 ',新值)

A操作
快速創建Action對象:
$action = A('User');
等效於
$action = new UserAction();

D操作
快速創建模型數據對象:
$model = D('User');
等效於
$model = new UserModel();

S操作
快速操作緩存方法
獲取:
S('name')
設置:
S('name','value');
刪 除:
S('name',NULL);

F操作
快速文件數據保存方法
使用方法與S操作一樣


L操作
快速操作語言變量
獲取:
L('語言變量');
設置:
L('語言變量','值');
如: L('USER_INFO','用戶信息'); //設置名稱爲USER_INFO的語言變量
批量賦值:
$arr['語言變量1'] = '值1';
$arr['語言變量2'] = '值2';
L($arr);

ThinkPHP系統常量

THINK_PATH // ThinkPHP 系統目錄
APP_PATH // 當前項目目錄
APP_NAME // 當前項目名稱
MODULE_NAME //當前模塊名稱
ACTION_NAME // 當前操作名稱
TMPL_PATH // 項目模版目錄
LIB_PATH // 項目類庫目錄
CACHE_PATH // 項目模版緩存目錄

CONFIG_PATH //項目配置文件目錄
LOG_PATH // 項目日誌文件目錄
LANG_PATH // 項目語言文件目錄
TEMP_PATH //項目臨時文件目錄
PLUGIN_PATH // 項目插件文件目錄
VENDOR_PATH // 第三方類庫目錄
DATA_PATH // 項目數據文件目錄
IS_APACHE // 是否屬於 Apache
IS_IIS //是否屬於 IIS
IS_WIN //是否屬於Windows 環境
IS_LINUX //是否屬於 Linux 環境
IS_FREEBSD //是否屬於 FreeBsd 環境
NOW_TIME // 當前時間戳
MEMORY_LIMIT_ON // 是否有內存使用限制

MEMORY_LIMIT_ON // 是否有內存使用限制
OUTPUT_GZIP_ON // 是否開啓輸出壓縮
MAGIC_QUOTES_GPC // MAGIC_QUOTES_GPC
THINK_VERSION //ThinkPHP 版本號
LANG_SET // 瀏覽器語言
TEMPLATE_NAME //當前模版名稱
TEMPLATE_PATH //當前模版路徑
// 網站根目錄地址
// 當前項目(入口文件)地址
/Info // 當前模塊地址
/Info/detail // 當前操作地址
/info/234.html // 當前 URL 地址
TMPL_FILE_NAME //當前操作的默認模版名(含路徑)
WEB_PUBLIC_URL //網站公共目錄
APP_PUBLIC_URL //項目公共模版目錄

預定義常量
WEB_LOG_ERROR=0 // 錯誤日誌類型
WEB_LOG_DEBUG=1 // 調試日誌類型
SQL_LOG_DEBUG=2 // SQL 日誌類型
SYSTEM_LOG=0 // 系統方式記錄日誌
MAIL_LOG=1 // 郵件方式記錄日誌
TCP_LOG=2 // TCP 方式記錄日誌
FILE_LOG=3 // 文件方式記錄日誌
DATA_TYPE_OBJ=1 // 對象方式返回
DATA_TYPE_ARRAY=0 // 數組方式返回
URL_COMMON=0 // 普通模式 URL
URL_PATHINFO=1 // PATHINFO URL
URL_REWRITE=2 // REWRITE URL
HAS_ONE=1 // HAS_ONE 關聯定義
BELONGS_TO=2 // BELONGS_TO 關聯定義
HAS_MANY=3 // HAS_MANY 關聯定義
MANY_TO_MANY=4 // MANY_TO_MANY 關聯定義
EXISTS_TO_VAILIDATE = 0 // 表單存在字段則驗證
MUST_TO_VALIDATE = 1 // 必須驗證
VALUE_TO_VAILIDATE = 2 // 表單值不爲空則驗證
發佈了59 篇原創文章 · 獲贊 7 · 訪問量 38萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章